×

Sử dụng dictionary comprehension để tạo từ điển nhanh chóng trong Python

Dictionary comprehension là một biểu thức mạnh mẽ và gọn gàng trong Python sử dụng để tạo từ điển mới dựa trên một iterable (danh sách, tuple, set, hoặc thậm chí là một từ điển khác). Phương pháp này không chỉ làm cho mã trở nên dễ đọc và ngắn gọn hơn, mà còn có thể giúp tối ưu hóa hiệu suất trong việc xây dựng và xử lý dữ liệu.

Cú pháp cơ bản

Cú pháp cơ bản của dictionary comprehension như sau:

{key_expression: value_expression for item in iterable}

Trong đó, key_expression là biểu thức để tính toán khóa (key) cho từ điển, value_expression là biểu thức để tính toán giá trị (value) tương ứng, và iterable là một đối tượng có thể lặp qua, chẳng hạn như danh sách hoặc một tập hợp.

Ví dụ minh họa

Tạo từ điển từ danh sách

Một trong những ví dụ đơn giản nhất là chuyển danh sách các số thành một từ điển mà khóa là các số và giá trị là bình phương của các số đó.

numbers = [1, 2, 3, 4, 5]
squared_dict = {num: num ** 2 for num in numbers}
print(squared_dict)

Output sẽ là:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Sử dụng dictionary comprehension với điều kiện

Bạn cũng có thể thêm điều kiện vào comprehension để lọc các phần tử.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_squared_dict = {num: num ** 2 for num in numbers if num % 2 == 0}
print(even_squared_dict)

Output sẽ là:

{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}

Ứng dụng thực tế

Dictionary comprehension có thể được áp dụng trong nhiều tình huống khác nhau. Dưới đây là một số trường hợp điển hình:

Từ điển từ danh sách tuple

Khi bạn có một danh sách chứa các tuple và muốn biến chúng thành từ điển, dictionary comprehension là lựa chọn hoàn hảo.

tuples = [('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')]
dict_from_tuples = {key: value for (key, value) in tuples}
print(dict_from_tuples)

Output sẽ là:

{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

Chuyển đổi từ điển khác

Nếu bạn có một từ điển và muốn tạo một từ điển mới từ nó với các giá trị đã biến đổi, bạn có thể sử dụng dictionary comprehension.

ages = {'Alice': 25, 'Bob': 30, 'Charlie': 35}
double_ages = {name: age * 2 for name, age in ages.items()}
print(double_ages)

Output sẽ là:

{'Alice': 50, 'Bob': 60, 'Charlie': 70}

Lợi ích của dictionary comprehension

  1. Tăng hiệu suất: Dictionary comprehension giúp tăng tốc độ thực thi so với các phương pháp truyền thống như dùng vòng lặp for cùng với các phương thức dict.update().
  2. Tính đọc dễ dàng: Mã nguồn sẽ trở nên ngắn gọn và dễ đọc hơn, giúp người khác (hoặc chính bạn) dễ dàng hiểu và quản lý.
  3. Ít lỗi hơn: Bằng cách giảm số lượng dòng mã cần viết, bạn cũng giảm cơ hội mắc lỗi.

Tóm lại, dictionary comprehension là một công cụ rất hữu ích và mạnh mẽ mà mọi lập trình viên Python nên biết và sử dụng. Kỹ thuật này không chỉ tăng tính rõ ràng và duy trì mã dễ hiểu mà còn cải thiện hiệu suất trong nhiều tình huống ứng dụng thực tế.

Comments