Hàm fromkeys hay phương thức fromkeys là một trong số các hàm được hỗ trợ sẵn của Kiểu dữ liệu Dictionary trong ngôn ngữ lập trình Python được sử dụng để tạo một mới từ điển (dictionary) với các khóa được chỉ định và một giá trị mặc định cho tất cả các khóa đó.
1. Cú pháp hàm fromkeys
Hãy chú ý rằng hàm fromkeys trong Python là một phương thức của lớp dict và không phải là một hàm của đối tượng
Cú pháp:
dict.fromkeys(keys, value=None)
Tham số:
keys
(bắt buộc): Một iterable (có thể là danh sách, tuple, set, hoặc bất kỳ iterable nào khác) chứa các khóa mà chúng ta muốn đặt vào từ điển mới.value
(tùy chọn): Giá trị mặc định sẽ được gán cho tất cả các khóa. Nếu không cung cấp, giá trị mặc định làNone
.
Kiểu dữ liệu trả về:
- Phương thức fromkeys trả về một từ điển mới với các khóa được chỉ định và giá trị mặc định.
Phiên bản Python hỗ trợ:
- Phương thức
fromkeys()
được hỗ trợ từ Python 2.3 trở đi.
2. Một số ví dụ hàm fromkeys
2.1. Hàm fromkeys tạo từ điển từ danh sách
keys_list = ['a', 'b', 'c', 'd']
default_value = 10
# Tạo từ điển với các khóa từ danh sách và giá trị mặc định là default_value
my_dict = dict.fromkeys(keys_list, default_value)
print(my_dict)
#Out put: {'a': 10, 'b': 10, 'c': 10, 'd': 10}
Giải thích:
- Chúng ta sử dụng danh sách
keys_list
làm các khóa cho từ điển mới. - Giá trị mặc định
default_value
(ở đây là 10) được gán cho tất cả các khóa.
2.2. Tạo từ điển với giá trị mặc định là None
# Có kiểu dữ liệu tuple
keys_tuple = ('x', 'y', 'z')
# Tạo từ điển với các khóa từ tuple và giá trị mặc định là None
my_dict = dict.fromkeys(keys_tuple)
print(my_dict)
#Output: {'x': None, 'y': None, 'z': None}
Giải thích:
- Chúng ta sử dụng tuple
keys_tuple
làm các khóa cho từ điển mới. - Vì không cung cấp giá trị mặc định (parameter
value
không được truyền), nên giá trị mặc định của tất cả các khóa làNone
.
2.3. Tạo từ điển với các khóa từ set và giá trị mặc định là 0
# Có kiểu dữ liệu set
keys_set = {'apple', 'banana', 'cherry'}
default_value = 0
# Tạo từ điển với các khóa từ set và giá trị mặc định là default_value
my_dict = dict.fromkeys(keys_set, default_value)
print(my_dict)
#Output: {'cherry': 0, 'apple': 0, 'banana': 0}
Giải thích:
- Chúng ta sử dụng set
keys_set
làm các khóa cho từ điển mới. - Giá trị mặc định
default_value
(ở đây là 0) được gán cho tất cả các khóa.
Sử dụng hàm fromkeys là một cách thuận tiện để tạo từ điển với các khóa từ một iterable và gán một giá trị mặc định cho tất cả các khóa.
2.4. Tạo từ điển lồng nhau với danh sách
keys = ['a', 'b', 'c']
default_value = [10, 20, 30]
# Tạo từ điển với các khóa từ danh sách và giá trị mặc định là một danh sách
my_dict = dict.fromkeys(keys, default_value)
print(my_dict)
#Output : {'a': [10, 20, 30], 'b': [10, 20, 30], 'c': [10, 20, 30]}
Giải thích:
- Chúng ta sử dụng danh sách
keys
làm các khóa cho từ điển mới. - Giá trị mặc định
default_value
(là một danh sách) được gán cho tất cả các khóa.
2.5. Tạo từ điển lồng nhau với tuple
# với key là tuple
keys = ('x', 'y', 'z')
# Và giá trị mặc định là 1 từ điển
default_value = {'value': None}
# Tạo từ điển với các khóa từ tuple và giá trị mặc định là một từ điển
my_dict = dict.fromkeys(keys, default_value)
print(my_dict)
#Output : {'x': {'value': None}, 'y': {'value': None}, 'z': {'value': None}}
Giải thích:
- Chúng ta sử dụng tuple
keys
làm các khóa cho từ điển mới. - Giá trị mặc định
default_value
(là một từ điển) được gán cho tất cả các khóa.
Cả hai ví dụ trên tạo từ điển với giá trị mặc định là một đối tượng (danh sách hoặc từ điển), tạo điều kiện cho việc tạo từ điển lồng nhau sau khi sử dụng hàm fromkeys