Thường gặp nhu cầu kiểm tra một phần tử có xuất hiện ít nhất N lần trong danh sách hay không. Ví dụ: số 5 có xuất hiện ít nhất 3 lần không. Bài viết trình bày 2 cách.
Đếm số lần xuất hiện
Nhập phần tử và số lần yêu cầu. Duyệt danh sách, đếm. Nếu đếm >= N thì True, else False.
Ví dụ
listA = [1, 3, 5, 5, 4, 5]
elem = 5
N = 3
res = 0
for e in listA:
if e == elem:
res += 1
if res >= N:
res = True
else:
res = False
print(f"Does {elem} occur atleast {N} times? :", res)
Kết quả:
Đầu ra
Does 5 occur atleast 3 times? : True
Sử dụng islice và next
Tạo list mới chứa True tại vị trí phần tử trùng elem. Dùng islice lấy phần tử thứ N-1 (0-index), nếu không có trả về False.
Ví dụ
from itertools import islice
listA = [2, 11, 9, 2, 4, 2]
elem = 2
N = 3
elem_list = []
for i in listA:
if i == elem:
elem_list.append(True)
res = next(islice(elem_list, N-1, None), False)
print(f"Does {elem} occur atleast {N} times? :", res)
Kết quả:
Đầu ra
Does 2 occur atleast 3 times? : True