Skip to content

Một vài chiêu thức với dictionary của Python

Image title

Bài này giới thiệu một vài cách viết mã lệnh đối với kiểu dictionary của Python, chủ yếu dựa vào những đặc trưng của ngôn ngữ này.1






Trộn hai dictionary

Một cách code theo truyền thống là, dùng vòng lặp để lấy ra từng item của mỗi dictionary rồi nạp vào dict_merged.

# Code theo truyền thống
if __name__ == '__main__':
    dict1= {'a' : 1, 'b': 2}
    dict2 = {'c': 3, 'd': 4}

    dict_merged = {}

    for k, v in dict1.items():
        dict_merged.update({k: v})

    for k, v in dict2.items():
        dict_merged.update({k: v})

    print(dict_merged)

Output:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Thay cho cách viết trên và trông có vẻ tiện hơn, Python cung cấp toán tử ** dùng để tháo rời mỗi dictionary rồi ghép vào dict_merged.

1
2
3
4
5
6
7
# Code theo Python-style
if __name__ == '__main__':
    dict1= {'a' : 1, 'b': 2}
    dict2 = {'c': 3, 'd': 4}

    dict_merged = {**dict1, **dict2}
    print(dict_merged)

Output:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

Sắp xếp các phần tử trong dict

Trước hết, ta tạo dictionary mới dict_sorted bằng dictionary comprehension.

Dictionary comprehension có dạng {key: value for (key, value) in iterable}.

Tiếp theo, lồng vào đó hàm sorted() gồm hai tham số:

  • Tham số thứ nhất là danh sách các cặp key: value.
  • Tham số thứ hai là điều kiện sắp xếp. Trong đó lambda x: x[0] là sắp xếp theo key, còn lambda x: x[1] là sắp xếp theo value.
# Code theo Python-style
if __name__ == '__main__':
    dict = {'c': 12, 'd': 11, 'a': 14, 'b': 13}

    # Sắp xếp theo key
    dict_sorted_by_key = {k: v for k, v in sorted(dict.items(), key=lambda x: x[0])}
    print(dict_sorted_by_key)

    # Sắp xếp theo value
    dict_sorted_by_value = {k: v for k, v in sorted(dict.items(), key=lambda x: x[1])}
    print(dict_sorted_by_value)

Output:

{'a': 14, 'b': 13, 'c': 12, 'd': 11}
{'d': 11, 'c': 12, 'b': 13, 'a': 14}

Google Colab

Các đoạn mã trong bài này được đặt tại Google Colab để bạn có thể thử nghiệm theo cách của riêng mình.


  1. Bài viết được tham khảo từ những website Python nổi tiếng.