Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - ตรวจสอบว่า k เกิดขึ้นอย่างน้อย n ครั้งในรายการ


หลายครั้งในระหว่างการวิเคราะห์ข้อมูลโดยใช้รายการ เราเจอสถานการณ์ที่เราต้องค้นหาว่าองค์ประกอบที่กำหนดมีอยู่อย่างน้อย N ครั้งในรายการที่กำหนดหรือไม่ ตัวอย่างเช่นถ้ามี 5 อย่างน้อยสามครั้งในรายการหรือไม่ ในบทความนี้เราจะมาดู 2 แนวทางในการบรรลุเป้าหมายนี้

นับจำนวนครั้ง

ในแนวทางด้านล่างเราใช้ตัวเลขและจำนวนที่เกิดขึ้นเป็นอินพุต จากนั้นเราออกแบบติดตามเพื่อนับเหตุการณ์ที่เกิดขึ้น หากค่าการนับมากกว่าหรือเท่ากับค่าที่ต้องการ เราจะพิมพ์ผลลัพธ์เป็น true หรือ false

ตัวอย่าง

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)

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

ผลลัพธ์

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

การใช้ Islice และถัดไป

ในแนวทางนี้ เราสร้างรายการใหม่ที่มีหมายเลขที่กำหนดจากรายการเดิม รายการใหม่นี้มีหมายเลขที่ระบุทั้งหมดซึ่งทำเครื่องหมายว่าเป็นจริง จากนั้นเราออกแบบวิธี islice ซึ่งจะคำนวณว่าจำนวนค่า True ที่ต้องการมีอยู่ในรายการใหม่หรือไม่ ดังนั้นจำนวนค่าที่ต้องการคือ Mark เป็นจริงหรือเท็จ

ตัวอย่าง

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)

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

ผลลัพธ์

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