Hàm setdefault 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 để lấy giá trị tương ứng với một khóa (key) trong từ điển.
Nếu khóa đó không tồn tại, hàm sẽ thêm một cặp khóa-giá trị mới vào từ điển với giá trị mặc định được chỉ định.
1. Cú pháp hàm setdefault
Hàm setdefault hay Python Dictionary setdefault là một phương thức của đối tượng từ điển (dictionary) trong ngôn ngữ lập trình Python.
Điều này có nghĩa là nó được gọi trên một đối tượng từ điển cụ thể và thực hiện các thao tác trên đối tượng đó. Hàm setdefault() không phải là phương thức của một lớp (class).
Cú pháp:
dictObj.setdefault(key, default_value)
Tham số:
key
: Khóa mà bạn muốn tìm kiếm trong từ điển.default_value
(tùy chọn): Giá trị mặc định sẽ được đặt cho khóa nếu khóa không tồn tại. Nếu không cung cấp, mặc định sẽ làNone
.
Kiểu dữ liệu trả về:
- Kiểu dữ liệu của giá trị tương ứng với khóa
key
. - Khóa đã tồn tại, giá trị không thay đổi
Phiên bản Python hỗ trợ:
- Hàm
setdefault()
đã được hỗ trợ trong Python từ phiên bản 1.5.2.
2. Một số ví dụ hàm setdefault
2.1. Thêm một khóa với giá trị mặc định nếu khóa chưa tồn tại
my_dict = {'a': 1, 'b': 2}
# Sử dụng setdefault để thêm một khóa mới 'c' với giá trị mặc định 0 nếu 'c' chưa tồn tại
my_dict.setdefault('c')
print(my_dict) # Kết quả: {'a': 1, 'b': 2, 'c': None}
Ở đây, ta đã kiểm tra khóa ‘c’ trong từ điển my_dict
. Nếu ‘c’ chưa tồn tại, setdefault()
sẽ thêm khóa ‘c’ với giá trị mặc định là None.
2.2. Thêm một khóa với giá trị mặc định từ một hàm
def default_value():
return [1, 2, 3]
my_dict = {'a': [4, 5]}
# Sử dụng setdefault để thêm khóa 'b' với giá trị mặc định từ hàm default_value()
my_dict.setdefault('b', default_value())
print(my_dict) # Kết quả: {'a': [4, 5], 'b': [1, 2, 3]}
Trong trường hợp này, chúng ta đã sử dụng một hàm default_value()
để tạo ra giá trị mặc định cho khóa ‘b’. Hàm này trả về một danh sách [1, 2, 3]
, và nếu khóa ‘b’ chưa tồn tại, setdefault()
sẽ thêm khóa ‘b’ với giá trị mặc định là danh sách trên.
2.3. Xử lý danh sách trong từ điển
my_dict = {'a': [1, 2]}
# Sử dụng setdefault để thêm phần tử vào danh sách tương ứng với khóa 'a'
my_dict.setdefault('a', []).append(3)
# Thêm phần tử vào danh sách tương ứng với khóa 'b'
my_dict.setdefault('b', []).append(4)
print(my_dict) # Kết quả: {'a': [1, 2, 3], 'b': [4]}
Ở đây, ta đã sử dụng setdefault()
để đảm bảo rằng danh sách tương ứng với khóa ‘a’ tồn tại, sau đó thêm phần tử vào danh sách đó. Nếu khóa ‘b’ chưa tồn tại, setdefault()
cũng tạo một danh sách mới và thêm phần tử vào nó.
2.4. Sử dụng setdefault để xử lý từ điển lồng nhau
my_dict = {'a': {'b': 1}}
# Sử dụng setdefault để xử lý từ điển lồng nhau
my_dict.setdefault('a', {})['c'] = 2
print(my_dict) # Kết quả: {'a': {'b': 1, 'c': 2}}
Trong ví dụ này, ta đã sử dụng setdefault()
để đảm bảo rằng từ điển lồng nhau tương ứng với khóa ‘a’ tồn tại. Sau đó, ta thêm một cặp khóa-giá trị mới (‘c’, 2) vào từ điển lồng nhau này.
2.5. Sử dụng setdefault để xử lý từ điển lồng nhau với giá trị mặc định từ hàm
def default_value():
return {'default_key': 'default_value'}
my_dict = {'a': {'b': 1}}
# Sử dụng setdefault để xử lý từ điển lồng nhau với giá trị mặc định từ hàm
my_dict.setdefault('a', default_value())
print(my_dict) # Kết quả: {'a': {'b': 1, 'default_key': 'default_value'}}
Ở ví dụ này, chúng ta đã sử dụng một hàm default_value()
để tạo ra giá trị mặc định cho từ điển lồng nhau. Nếu khóa ‘a’ chưa tồn tại, setdefault()
sẽ thêm khóa ‘a’ với giá trị mặc định từ hàm default_value()
.