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

Python - ตรวจสอบว่า k ปรากฏอย่างน้อย n ครั้งในลิสต์


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

การนับจำนวนครั้งที่เกิดขึ้น

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

ตัวอย่าง

listA = [1, 3, 5, 5, 4, 5]
# Given list
print("Given list: ", listA)
# element to be checked
elem = 5
# Number of occurrences
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 และ next

ในวิธีนี้เราสร้างลิสต์ใหม่ที่มีตัวเลขที่กำหนดจากลิสต์ต้นฉบับ ลิสต์ใหม่นี้มีทุกครั้งที่ตัวเลขที่กำหนดปรากฏ標記เป็น true จากนั้นเราออกแบบเมธอด islice ที่จะคำนวณว่ามีค่า True ตามจำนวนที่ต้องการในลิสต์ใหม่อยู่หรือไม่ ตามนั้นจำนวนที่ต้องการจะถูกทำเครื่องหมายเป็น true หรือ false

ตัวอย่าง

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