Làm thế nào để có được kích thước của cửa sổ PyGame?
Trong bài viết này, chúng ta sẽ tìm hiểu Cách lấy kích thước của Cửa sổ PyGame...
Category: Python
Trong Python, defaultdict là một lớp con của lớp dict tích hợp từ mô-đun collections. Nó được sử dụng để cung cấp giá trị mặc định cho một khóa không tồn tại trong từ điển, loại bỏ nhu cầu kiểm tra xem khóa có tồn tại hay không trước khi sử dụng.
Khi chúng ta truy cập một khóa không tồn tại trong từ điển, defaultdict sẽ tự động tạo khóa đó và gán cho nó một giá trị mặc định dựa trên hàm chúng ta cung cấp.
Chúng ta cần chỉ định kiểu giá trị mặc định bằng cách truyền một hàm (như int, list hoặc set) khi khởi tạo defaultdict.
Ví dụ:
from collections import defaultdict
d = defaultdict(list)
d['fruits'].append('apple')
d['vegetables'].append('carrot')
print(d)
print(d['juices'])
Đầu ra:
defaultdict(<class 'list'>, {'fruits': ['apple'], 'vegetables': ['carrot']})
[]
Giải thích: Mã này tạo một defaultdict với giá trị mặc định là một danh sách rỗng. Nó thêm các phần tử vào khóa 'fruits' và 'vegetables' . Khi cố gắng truy cập khóa 'juices' , không có KeyError nào được đưa ra và một danh sách rỗng được trả về vì nó không tồn tại trong từ điển.
defaultdict(hàm tạo mặc định)
Các thông số:
default_factory: Một hàm trả về giá trị mặc định cho từ điển được xác định. Nếu đối số này không có thì từ điển sẽ đưa ra lỗi KeyError.
Giá trị trả về: Trả về một đối tượng giống như từ điển tự động cung cấp giá trị mặc định cho các khóa bị thiếu, dựa trên lệnh gọi được chỉ định, thay vì đưa ra lỗi KeyError.
Khi defaultdict được tạo, bạn chỉ định một hàm nhà máy sẽ cung cấp giá trị mặc định cho các khóa mới. Hàm nhà máy này có thể là int, list, str hoặc bất kỳ đối tượng có thể gọi nào khác. Ví dụ:
Sử dụng int: Nếu bạn sử dụng int làm hàm gốc, giá trị mặc định sẽ là 0 (vì int() trả về 0).
Sử dụng danh sách: Nếu bạn sử dụng danh sách làm hàm gốc, giá trị mặc định sẽ là danh sách rỗng ([]).
Sử dụng str: Nếu bạn sử dụng str, giá trị mặc định sẽ là một chuỗi rỗng ('').
Đây là hàm trả về giá trị mặc định cho từ điển được xác định. Nếu đối số này không có thì từ điển sẽ đưa ra lỗi KeyError.
from collections import defaultdict
# Định nghĩa dict và truyền lambda làm đối số default_factory
d = defaultdict(lambda: "Not Present")
d["a"] = 1
d["b"] = 2
print(d["a"])
print(d["b"])
print(d["c"])
Đầu ra:
1
2
Not Present
Khi lớp danh sách được truyền dưới dạng đối số default_factory, thì defaultdict sẽ được tạo với các giá trị trong danh sách.
from collections import defaultdict
d = defaultdict(list)
for i in range(5):
d[i].append(i)
print("Dictionary with values as list:")
print(d)
Đầu ra:
Dictionary with values as list:
defaultdict(<class 'list'>, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})
Giải thích: Ví dụ này minh họa việc sử dụng list làm factory mặc định. Một defaultdict được tạo bằng list, nghĩa là bất kỳ key nào bị thiếu sẽ tự động có một list rỗng làm giá trị của nó. Vòng lặp sẽ thêm giá trị của i vào list của key tương ứng.
Khi lớp int được truyền dưới dạng đối số default_factory, thì defaultdict được tạo với giá trị mặc định là 0.
from collections import defaultdict
d = defaultdict(int)
a = [1, 2, 3, 4, 2, 4, 1, 2]
for i in a:
d[i] += 1
print(d)
Đầu ra:
defaultdict(<class 'int'>, {1: 2, 2: 3, 3: 1, 4: 2})
Giải thích: Ví dụ này sử dụng int làm hàm tạo mặc định. int() trả về 0 , do đó các khóa bị thiếu sẽ có giá trị mặc định là 0. Vòng lặp đếm số lần xuất hiện của mỗi số trong danh sách a và cập nhật từ điển cho phù hợp.
Khi lớp str được truyền dưới dạng đối số default_factory.
from collections import defaultdict
# Sử dụng str làm hàm nhà máy
sd = defaultdict(str)
sd['greeting'] = 'Hello'
print(sd)
Đầu ra:
defaultdict(<class 'str'>, {'greeting': 'Hello'})
Giải thích: Ví dụ này sử dụng str làm factory mặc định. str() trả về một chuỗi rỗng, do đó các khóa bị thiếu sẽ có một chuỗi rỗng làm giá trị mặc định. Giá trị (' Hello ') được thiết lập rõ ràng cho khóa ' greeting '.
Defaultdict thêm một biến thể hiện có thể ghi và một phương thức ngoài các hoạt động từ điển chuẩn. Biến thể hiện là tham số default_factory và phương thức được cung cấp là missing .
Hàm này được sử dụng để cung cấp giá trị mặc định cho từ điển. Nó lấy default_factory làm đối số và nếu đối số này là None , KeyError sẽ được đưa ra, nếu không, nó sẽ cung cấp giá trị mặc định cho khóa đã cho. Phương pháp này về cơ bản được gọi bởi phương pháp getitem() của lớp dict khi không tìm thấy khóa được yêu cầu. getitem() đưa ra hoặc trả về giá trị được trả về bởi phương pháp missing() .
from collections import defaultdict
d = defaultdict(lambda: "Not Present")
d["a"] = 1
d["b"] = 2
print(d.__missing__('a'))
print(d.__missing__('d'))
Đầu ra:
Not Present
Not Present
Giải thích:
defaultdict được khởi tạo bằng hàm lambda trả về " Not Present " cho các khóa bị thiếu .
Khi khóa ' a ' được truy cập, giá trị của nó được trả về ( 1 ) và missing không được gọi.
Khi truy cập khóa ' d ' (không tồn tại), missing sẽ được kích hoạt và giá trị mặc định " Not Present " sẽ được trả về.
Published on Jun 19, 2025
Trong bài viết này, chúng ta sẽ tìm hiểu Cách lấy kích thước của Cửa sổ PyGame . Lập trình game ngày nay rất bổ ích và có thể được sử dụng trong...
Giao diện người dùng đồ họa ( GUI ) đóng vai trò then chốt trong việc nâng cao tương tác và trải nghiệm của người dùng. Python, được biết đến với....
Python Module là một tệp chứa các hàm, lớp, its và biến tích hợp. Có nhiều module Python , mỗi module có chức năng riêng. Trong bài viết nà...
Python MySQL Connector là trình điều khiển Python giúp tích hợp Python và MySQL. Thư viện Python MySQL này cho phép chuyển đổi giữa các kiểu dữ liệu...
MongoDB là một cơ sở dữ liệu NoSQL phổ biến được thiết kế để lưu trữ và quản lý dữ liệu một cách linh hoạt và có quy mô. Không giống như các cơ sở...
Quản lý thư mục Python đề cập đến việc xử lý và tương tác với các thư mục (folder) trên hệ thống tệp bằng Python. Nó bao gồm việc tạo, xóa, điều hướng...