Một list được cấu thành từ các tuple làm phần tử. Trong bài này ta sẽ đếm số lượng các tuple duy nhất có mặt trong list.
Với defaultdict
Ta đối với list cho trước như một container defaultdict và đếm các phần tử trong nó dùng điều kiện in.
Ví dụ
import collections Alist = [[('Mon', 'Wed')], [('Mon')], [('Tue')],[('Mon', 'Wed')] ] # Danh sách cho trước print("Given list:\n", Alist) res = collections.defaultdict(int) for elem in Alist: res[elem[0]] += 1 print("Count of tuples present in the list:\n",res)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: [[('Mon', 'Wed')], ['Mon'], ['Tue'], [('Mon', 'Wed')]] Count of tuples present in the list: defaultdict(, {('Mon', 'Wed'): 2, 'Mon': 1, 'Tue': 1}) Với Counter và chain
Hàm Counter và chain thuộc modules collections và itertools. Dùng chúng cùng nhau ta có thể lấy số lần xuất hiện của mỗi phần tử trong list là tuple.
Ví dụ
from collections import Counter from itertools import chain Alist = [[('Mon', 'Wed')], [('Mon')], [('Tue')],[('Mon', 'Wed')] ] # Danh sách cho trước print("Given list:\n", Alist) res = Counter(chain(*Alist)) print("Count of tuples present in the list:\n",res)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: [[('Mon', 'Wed')], ['Mon'], ['Tue'], [('Mon', 'Wed')]] Count of tuples present in the list: Counter({('Mon', 'Wed'): 2, 'Mon': 1, 'Tue': 1})