Trong bài này ta sẽ xem cách lấy một số phần tử được chọn từ một list Python. Vì vậy ta cần thiết kế điều kiện và chỉ những phần tử thỏa mãn điều kiện mới được chọn và in ra số lượng của chúng.
Với in và sum
Trong cách này ta dùng điều kiện in để chọn phần tử và sum để lấy số lượng. 1 dùng nếu phần tử hiện diện, 0 cho kết quả của điều kiện in.
Ví dụ
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] # Danh sách cho trước print("Given list:\n", Alist) cnt = sum(1 for i in Alist if i in('Mon','Wed')) print("Number of times the condition is satisfied in the list:\n",cnt)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] Number of times the condition is satisfied in the list: 3
Với map và lambda
Ở đây cũng dùng điều kiện in nhưng cũng dùng lambda và map. Cuối cùng áp dụng sum để lấy số lượng.
Ví dụ
Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] # Danh sách cho trước print("Given list:\n", Alist) cnt = sum(map(lambda i: i in('Mon','Wed'), Alist)) print("Number of times the condition is satisfied in the list:\n",cnt)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] Number of times the condition is satisfied in the list: 3
Với reduce
Hàm reduce áp dụng một hàm cụ thể cho tất cả phần tử trong list được cung cấp làm đối số. Ta dùng nó cùng điều kiện in cuối cùng cho ra số lượng phần tử khớp điều kiện.
Ví dụ
from functools import reduce Alist = ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] # Danh sách cho trước print("Given list:\n", Alist) cnt = reduce(lambda count, i: count + (i in('Mon','Wed')), Alist, 0) print("Number of times the condition is satisfied in the list:\n",cnt)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: ['Mon', 'Wed', 'Mon', 'Tue', 'Thu'] Number of times the condition is satisfied in the list: 3