Khóa học python

Vòng lặp Dictionary trong Python

0 phút đọc

Dictionary (từ điển) là một kiểu dữ liệu rất quan trọng và phổ biến trong Python, được sử dụng để lưu trữ các cặp key-value. Việc lặp qua các phần tử của dictionary là một thao tác cơ bản và quan trọng khi làm việc với kiểu dữ liệu này. Bài viết này sẽ hướng dẫn chi tiết cách lặp qua dictionary trong Python, kèm theo các ví dụ minh họa chi tiết.

Lặp qua các key của Dictionary

Bạn có thể lặp qua các key của dictionary bằng cách sử dụng vòng lặp for.

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Lặp qua các key
for key in my_dict:
    print(key)

Output:

name
age
city

Lặp qua các giá trị của Dictionary

Bạn có thể lặp qua các giá trị của dictionary bằng cách sử dụng phương thức values().

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Lặp qua các giá trị
for value in my_dict.values():
    print(value)

Output:

John
25
New York

Lặp qua các cặp key-value của Dictionary

Bạn có thể lặp qua các cặp key-value của dictionary bằng cách sử dụng phương thức items().

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Lặp qua các cặp key-value
for key, value in my_dict.items():
    print(f"Key: {key}, Value: {value}")

Output:

Key: name, Value: John
Key: age, Value: 25
Key: city, Value: New York

Sử dụng enumerate() để lặp qua Dictionary

Hàm enumerate() có thể được sử dụng để lặp qua dictionary cùng với chỉ số của các phần tử.

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Sử dụng enumerate để lặp qua dictionary
for index, (key, value) in enumerate(my_dict.items()):
    print(f"Index: {index}, Key: {key}, Value: {value}")

Output:

Index: 0, Key: name, Value: John
Index: 1, Key: age, Value: 25
Index: 2, Key: city, Value: New York

Các phương pháp nâng cao để lặp qua Dictionary

Sử dụng itertools.chain()

Hàm itertools.chain() có thể được sử dụng để lặp qua nhiều dictionary cùng một lúc.

import itertools

# Tạo hai dictionary
dict1 = {'A': 1, 'B': 2}
dict2 = {'C': 3, 'D': 4}

# Sử dụng itertools.chain để lặp qua cả hai dictionary
for key, value in itertools.chain(dict1.items(), dict2.items()):
    print(f"Key: {key}, Value: {value}")

Output:

Key: A, Value: 1
Key: B, Value: 2
Key: C, Value: 3
Key: D, Value: 4

Sử dụng zip()

Hàm zip() có thể được sử dụng để lặp qua các key và giá trị của dictionary một cách đồng thời.

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Sử dụng zip để lặp qua các key và giá trị
for key, value in zip(my_dict.keys(), my_dict.values()):
    print(f"Key: {key}, Value: {value}")

Output:

Key: name, Value: John
Key: age, Value: 25
Key: city, Value: New York

Sử dụng List Comprehension

List comprehension có thể được sử dụng để tạo ra một danh sách mới từ các phần tử của dictionary.

# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Sử dụng list comprehension để tạo danh sách các cặp key-value
key_value_pairs = [(key, value) for key, value in my_dict.items()]
print(key_value_pairs)

Output:

[('name', 'John'), ('age', 25), ('city', 'New York')]

Lặp qua Dictionary lồng nhau

Dictionary lồng nhau là dictionary chứa các dictionary khác làm phần tử. Bạn có thể lặp qua các phần tử trong dictionary lồng nhau bằng cách sử dụng các phương pháp đã học.

Ví dụ về dictionary lồng nhau

# Tạo một dictionary lồng nhau
nested_dict = {
    'person1': {'name': 'John', 'age': 25},
    'person2': {'name': 'Jane', 'age': 30}
}

# Lặp qua các phần tử trong dictionary lồng nhau
for person, info in nested_dict.items():
    print(f"{person}:")
    for key, value in info.items():
        print(f"  {key}: {value}")

Output:

person1:
  name: John
  age: 25
person2:
  name: Jane
  age: 30

Sử dụng đệ quy để lặp qua dictionary lồng nhau

Bạn có thể sử dụng đệ quy để lặp qua các dictionary lồng nhau một cách hiệu quả.

# Tạo một dictionary lồng nhau
nested_dict = {
    'person1': {'name': 'John', 'age': 25},
    'person2': {'name': 'Jane', 'age': 30}
}

# Hàm đệ quy để lặp qua dictionary lồng nhau
def iterate_nested_dict(d, indent=0):
    for key, value in d.items():
        print('  ' * indent + f"{key}:")
        if isinstance(value, dict):
            iterate_nested_dict(value, indent + 1)
        else:
            print('  ' * (indent + 1) + str(value))

# Gọi hàm đệ quy
iterate_nested_dict(nested_dict)

Output:

person1:
  name:
    John
  age:
    25
person2:
  name:
    Jane
  age:
    30

Các lưu ý khi lặp qua Dictionary

Tránh thay đổi Dictionary trong khi lặp

Việc thay đổi dictionary trong khi lặp qua nó có thể dẫn đến các lỗi không mong muốn. Nếu bạn cần thay đổi dictionary, hãy tạo một bản sao hoặc thu thập các thay đổi trong một danh sách riêng.

# Tạo một dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Tạo một danh sách để lưu các key cần xóa
keys_to_remove = []

# Lặp qua dictionary và thu thập các key cần xóa
for key in my_dict:
    if my_dict[key] % 2 == 0:
        keys_to_remove.append(key)

# Xóa các key đã thu thập
for key in keys_to_remove:
    del my_dict[key]

print(my_dict)

Output:

{'a': 1, 'c': 3}

Sử dụng copy() để tạo bản sao của Dictionary

Bạn có thể sử dụng phương thức copy() để tạo một bản sao nông của dictionary trước khi lặp qua và thay đổi nó.

# Tạo một dictionary
original_dict = {'name': 'John', 'age': 25, 'city': 'New York'}

# Tạo bản sao của dictionary
copied_dict = original_dict.copy()

# Thay đổi giá trị trong dictionary sao chép
copied_dict['age'] = 26
print('Original Dictionary:', original_dict)
print('Copied Dictionary:', copied_dict)

Output:

Original Dictionary: {'name': 'John', 'age': 25, 'city': 'New York'}
Copied Dictionary: {'name': 'John', 'age': 26, 'city': 'New York'}

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách lặp qua dictionary trong Python bằng nhiều phương pháp khác nhau, bao gồm lặp qua các key, giá trị, và cặp key-value, sử dụng enumerate(), itertools.chain(), zip(), và list comprehension. Chúng ta cũng đã xem xét cách lặp qua dictionary lồng nhau và các lưu ý khi lặp qua dictionary. Hy vọng rằng các ví dụ minh họa này sẽ giúp bạn hiểu rõ hơn về cách làm việc với dictionary trong Python và áp dụng chúng vào các bài toán thực tế của mình.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Liệt kê các kiểu dữ liệu trong Python?

entry

Biến cục bộbiến toàn cục trong Python là gì?

entry

Trong Python có những built-in types nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely