Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách dùng list comprehension trong Python
Trong bài này chúng ta sẽ tìm hiểu cách sử dụng list comprehension trong Python, đây là cách tạo ra một list mới dựa vào một list có sẵn dựa vào một điều kiện nào đó.

1. List comprehension là gì?
List comprehension là cách tạo ra một list dữ liệu mới dựa vào dữ liệu cũ theo một điều kiện nào đó.
Vậy, công thức chung của list comprehension là:
newlist = [expression for item in iterable if condition == True]
Trong đó:
Bài viết này được đăng tại [free tuts .net]
expressionchính là biểu thức trả vềiterablelà tập dữ liệu iteratorconditionlà điều kiện trả về, phần tử nào cócondition = Truethì biểu thức expression tương ứng sẽ được trả về.
Giả sử mình có một mảng các số như sau:
numbers = [1,3,86,4,54,54,45,65,6,57,67,87,82]
Bây giờ mình muốn tạo một mảng mới từ mảng này, với điều kiện là chỉ lấy các số chẵn mà thôi.
Cách thứ nhất: Sử dụng vòng lặp bình thường.
numbers = [1,3,86,4,54,54,45,65,6,57,67,87,82]
new_numbers = []
for n in numbers:
if n % 2 == 0:
new_numbers.append(n)
# kết quả: [86, 4, 54, 54, 6, 82]
print(new_numbers)Cách thứ hai: Sử dụng list comprehension.
numbers = [1,3,86,4,54,54,45,65,6,57,67,87,82] new_numbers = [x for x in numbers if x % 2 == 0] # kết quả: [86, 4, 54, 54, 6, 82] print(new_numbers)
Bạn có thể không cần phải truyền condition.
Ví dụ: Tạo mảng mới với giá trị gấp đôi mảng cũ.
numbers = [1,3,5,7,9] new_numbers = [x*2 for x in numbers] # Kết quả: [2, 6, 10, 14, 18] print(new_numbers)
2. Ví dụ về list comprehension trong Python
Bây giờ mình sẽ làm thêm một vài ví dụ để bạn dễ hiểu hơn nhé.
Ví dụ: Tạo danh sách các số nguyên tố từ một danh sách có sẵn.
Để giải bài này thì ta cần tạo một hàm kiểm tra số nguyên tố trước, sau đó sẽ sử dụng nó trong phần condition.
# Hàm kiểm tra số nguyên tố
def laSNT(n):
if n < 2: return False
elif n == 2: return True
elif n % 2 == 0: return False
else:
for i in range(3, n, 2):
if n % i == 0: return False
return True
# Dữ liệu
data = [1, 2, 3, 5, 45, 46, 5, 6, 76, 9, 11]
# Lấy danh sách các số nguyên tố trong data
data_snt = [x for x in data if laSNT(x)]
print(data_snt)Đây chính là cách sử dụng list comprehension để tạo ra danh sách mảng mới trong Python.

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