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

โปรแกรมหาสมาชิกในลิสต์ที่เกิดขึ้นอย่างน้อย k ครั้งใน Python

สมมติว่าเรามีรายการสมาชิกชื่อ nums และค่า k เราต้องการหาสมาชิกที่เกิดขึ้นอย่างน้อย k ครั้ง

ตัวอย่างเช่น หาก nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1] และ k = 3 ผลลัพธ์จะเป็น [2, 5, 6, 3]

ขั้นตอนการแก้ปัญหา

  • c := รายการที่เก็บความถี่ของแต่ละสมาชิกใน nums (ใช้ Counter)
  • res := รายการใหม่สำหรับเก็บผลลัพธ์
  • สำหรับแต่ละ key n ใน c:
    • ถ้า c[n] >= k ให้เพิ่ม n เข้าไปใน res
  • คืนค่า res

ตัวอย่างโค้ด

from collections import Counter

def solve(nums, k):
    c = Counter(nums)
    res = []
    for n in c:
        if c[n] >= k:
            res.append(n)
    return res

nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1]
k = 3
print(solve(nums, k))

อินพุต

[2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1], 3

เอาต์พุต

[2, 5, 6, 3]