Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
List Comprehension trong Python
Trong lập trình Python, việc xử lý danh sách là một nhiệm vụ phổ biến và quan trọng. Để thực hiện điều này một cách ngắn gọn và hiệu quả, List Comprehension được giới thiệu như một công cụ mạnh mẽ, giúp bạn tạo danh sách chỉ trong một dòng mã. Đây không chỉ là cách viết súc tích, mà còn giúp cải thiện khả năng đọc hiểu và hiệu suất của mã nguồn. Bài viết này sẽ cung cấp cái nhìn tổng quan về List Comprehension, từ khái niệm cơ bản, cú pháp, đến các trường hợp sử dụng nâng cao. Đồng thời, chúng ta cũng sẽ tìm hiểu cách List Comprehension hoạt động so với vòng lặp for truyền thống, cũng như ứng dụng của nó trong Set và Dictionary Comprehension. Hãy cùng bắt đầu tìm hiểu tính năng đặc biệt này!

Hạn chế việc dùng vòng lặp for trong Python

Cách thông thường:
squares = []
for i in range(5):
squares.append(i * i)
print(squares)
Kết quả:
[0, 1, 4, 9, 16]
Sử dụng List Comprehension (tốt hơn):
# new_list = [biểu_thức for phần_tử in iterable] squares = [i * i for i in range(5)] print(squares)
Kết quả:
[0, 1, 4, 9, 16]
Trong ví dụ trên:
Bài viết này được đăng tại [free tuts .net]
range(5)là một iterable (có thể là danh sách, tập hợp, hoặc bất kỳ đối tượng iterable nào khác).i * ilà biểu thức được áp dụng lên từng phần tử của iterable.
Kết hợp với Hàm trong Python
Bạn cũng có thể kết hợp List Comprehension với một hàm bất kỳ:
def cube(i):
return i * i * i
cubes = [cube(i) for i in range(5)]
print(cubes)
Kết quả:
[0, 1, 8, 27, 64]
Lọc dữ liệu bằng List Comprehension trong Python
Bạn có thể thêm điều kiện if để lọc kết quả:
# new_list = [biểu_thức for phần_tử in iterable if điều_kiện] evens = [i for i in range(20) if i % 2 == 0] print(evens)
Kết quả:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Hoặc sử dụng điều kiện với hàm:
def is_even(i):
return i % 2 == 0
evens = [i for i in range(20) if is_even(i)]
print(evens)
Kết hợp điều kiện if else trong Python
Bạn cũng có thể dùng List Comprehension để xử lý các trường hợp phân nhánh:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [10 if i > 5 else 0 for i in a] print(b)

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng