/Hàm fromkeys – Kiểu dữ liệu Dictionary

Hàm fromkeys – Kiểu dữ liệu Dictionary

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 dictkhô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.
Hàm fromkeys – Kiểu dữ liệu Dictionary

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