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