หลายครั้งในระหว่างการวิเคราะห์ข้อมูลโดยใช้รายการ เราเจอสถานการณ์ที่เราต้องค้นหาว่าองค์ประกอบที่กำหนดมีอยู่อย่างน้อย 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