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