Computer >> 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

Nhiều lần trong quá trình phân tích dữ liệu bằng cách sử dụng danh sách, chúng ta gặp một tình huống mà chúng ta cần tìm hiểu xem một phần tử đã cho có hiện diện ít nhất N lần trong danh sách đã cho hay không. Ví dụ, nếu 5 có mặt ít nhất ba lần trong danh sách hay không. Trong bài viết này, chúng ta sẽ xem 2 cách tiếp cận về cách đạt được điều này.

Số lần đếm

Trong cách tiếp cận dưới đây, chúng tôi lấy số và số lần xuất hiện của nó làm đầu vào. Sau đó, chúng tôi e designer theo dõi để giữ số lần xuất hiện. Nếu giá trị đếm lớn hơn hoặc bằng giá trị được yêu cầu thì chúng tôi in kết quả là true, ngược lại là false.

Ví dụ

listA = [1, 3, 5, 5, 4, 5]
# Given list
print("Given list: ",listA)
# element ot be checked
elem = 5
# Number of occurences
N = 3
res = 0
for e in listA:
   if e == elem:
      res = res + 1
      if res >= N:
         res = True
   else:
         res = False
# printing result
print("Does %d occur atleast %d times ? :" % (elem, N),res)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

Given list: [1, 3, 5, 5, 4, 5]
Does 5 occur atleast 3 times ? : True

Sử dụng Islice và tiếp theo

Trong cách tiếp cận này, chúng tôi tạo một danh sách mới chứa số đã cho từ danh sách ban đầu. Danh sách mới này có tất cả các lần xuất hiện của số đã cho được đánh dấu là đúng. Sau đó, chúng tôi thiết kế một phương thức islice sẽ tính toán xem số lượng giá trị True cần thiết có trong danh sách mới hay không. Theo đó, số giá trị được yêu cầu là Mark làm đúng hoặc sai.

Ví dụ

from itertools import islice
listA = [2, 11, 9,2, 4, 2]
# Given list
print("Given list: ",listA)
# element to be checked
elem = 2
# Number of occurrences
N = 3
elem_list = []
# Create
for i in listA:
   if i == elem:
      elem_list.append(True)
res = next(islice(elem_list, N-1, None), False)
# printing result
print("Does %d occur atleast %d times ? :" % (elem, N),res)

Chạy đoạn mã trên cho chúng ta kết quả sau -

Đầu ra

Given list: [2, 11, 9, 2, 4, 2]
Does 2 occur atleast 3 times ? : True