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

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

Hàm update hay phương thức update 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 để cập nhật từ điển (dictionary) bằng cách thêm các cặp khóa-giá trị từ một từ điển khác hoặc các cặp giá trị khác nhau.

1. Cú pháp hàm update

Hàm update hay Python Dictionary update 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 thao tác cập nhật trên đối tượng đó. Hàm update không phải là phương thức của một lớp (class).

Cú pháp

  • dictObj.update([other_dictionary] or [(key1, value1), (key2, value2), ...])

Tham số:

  • other_dictionary (tùy chọn): Từ điển khác chứa các cặp khóa-giá trị mà muốn cập nhật vào từ điển ban đầu.
  • key1, value1, key2, value2, ... (tùy chọn): Các cặp khóa-giá trị mà muốn thêm vào từ điển.

Kiểu dữ liệu trả về:

  • Không có, hàm update() cập nhật trực tiếp từ điển gọi nó.

Phiên bản Python hỗ trợ:

  • Hàm update() đã được hỗ trợ trong Python từ phiên bản 2.0.
Hàm update – Kiểu dữ liệu Dictionary

2. Một số ví dụ hàm update

2.1. Cập nhật từ điển bằng từ điển khác

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

# Cập nhật dict1 bằng cách thêm các cặp khóa-giá trị từ dict2
dict1.update(dict2)
print(dict1)  # Kết quả: {'a': 1, 'b': 3, 'c': 4}

Giải thích:

  • Hàm update() được sử dụng để cập nhật dict1 bằng cách thêm hoặc cập nhật các cặp khóa-giá trị từ dict2. Nếu khóa đã tồn tại, giá trị sẽ được cập nhật; nếu không, cặp khóa-giá trị mới sẽ được thêm vào.

2.2. Cập nhật từ điển bằng danh sách các cặp khóa-giá trị

my_dict = {'a': 1, 'b': 2}

# Sử dụng danh sách các cặp khóa-giá trị
items_to_add = [('c', 3), ('d', 4)]
my_dict.update(items_to_add)
print(my_dict)  # Kết quả: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

Giải thích:

  • Hàm update() được sử dụng để thêm hoặc cập nhật các cặp khóa-giá trị từ danh sách items_to_add.

2.3. Cập nhật từ điển bằng zip của các khóa và giá trị

keys = ['a', 'b', 'c']
values = [1, 2, 3]

# Sử dụng zip(keys, values) để tạo danh sách các cặp khóa-giá trị
my_dict = {}
my_dict.update(zip(keys, values))
print(my_dict)  # Kết quả: {'a': 1, 'b': 2, 'c': 3}

Giải thích:

  • Hàm update() được sử dụng để thêm hoặc cập nhật các cặp khóa-giá trị từ zip(keys, values), nơi keys là danh sách các khóa và values là danh sách các giá trị.

2.4. Cập nhật từ điển bằng **kwargs (keyword arguments)

my_dict = {'a': 1, 'b': 2}

# Sử dụng **kwargs (keyword arguments)
my_dict.update(e=5, f=6)
print(my_dict)  # Kết quả: {'a': 1, 'b': 2, 'e': 5, 'f': 6}

Giải thích:

  • Hàm update() được sử dụng để thêm hoặc cập nhật các cặp khóa-giá trị bằng cách truyền chúng như **kwargs (keyword arguments). Cặp khóa-giá trị được truyền dưới dạng key=value.

2.5. Kết hợp nhiều hàm của từ điển

def complex_update(my_dict, key, value):
    # Kiểm tra khóa có tồn tại hay không, nếu tồn tại, loại bỏ và lấy giá trị
    old_value = my_dict.pop(key, None)
    if old_value is not None:
        print(f"Loại bỏ khóa '{key}', giá trị cũ là {old_value}")

    # Cập nhật từ điển với khóa mới và giá trị
    my_dict.update({key: value})
    print(f"Cập nhật từ điển với khóa '{key}' và giá trị {value}")

    # Nếu khóa không tồn tại, thêm vào với giá trị mặc định là 0
    my_dict.setdefault(key, 0)

    # Hiển thị từ điển sau cập nhật
    print("Từ điển sau cập nhật:")
    print(my_dict)

# Tạo một từ điển ban đầu
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Gọi hàm complex_update() để cập nhật từ điển
complex_update(my_dict, 'b', 5)

Giải thích:

  • Trong ví dụ này, chúng ta tạo một hàm complex_update() để thực hiện một loạt các hoạt động trên từ điển.
  • Hàm complex_update() nhận một từ điển (my_dict), một khóa (key) và một giá trị (value) làm tham số.
  • Trong hàm này, chúng ta sử dụng hàm pop() để kiểm tra xem khóa có tồn tại hay không. Nếu tồn tại, ta loại bỏ và lấy giá trị cũ.
  • Tiếp theo, ta cập nhật từ điển với khóa mới và giá trị bằng hàm update().
  • Sau đó, nếu khóa không tồn tại, ta thêm nó với giá trị mặc định là 0 bằng hàm setdefault().
  • Cuối cùng, chúng ta hiển thị từ điển sau cập nhật.