Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Kiểm tra xem k có xuất hiện ít nhất n lần trong danh sách hay không


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