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

Python – จำกัดความถี่ของสมาชิกในลิสต์

เมื่อต้องการจำกัดความถี่ของสมาชิกในลิสต์ให้ไม่เกินค่าที่กำหนด สามารถใช้ลูป iteration, defaultdict และ append() ได้

ตัวอย่าง

from collections import defaultdict
my_list = [11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
print("The list is :")
print(my_list)
my_dict = {14: 3, 11: 1, 16: 1, 15: 2}
print("The dictionary is :")
print(my_dict)
my_result = []
my_def_dict = defaultdict(int)
for element in my_list:
    my_def_dict[element] += 1
    if my_def_dict[element] > my_dict[element]:
        continue
    else:
        my_result.append(element)
print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [11, 14, 15, 14, 11, 14, 14, 15, 15, 16]
The restrict dictionary is : {14: 3, 11: 1, 16: 1, 15: 2}
The result is : [11, 14, 15, 14, 14, 15, 16]

คำอธิบาย

  • นำเข้า defaultdict จาก collections

  • กำหนดลิสต์ข้อมูลและ dictionary ที่ระบุจำนวนสูงสุดที่อนุญาตต่อแต่ละค่า

  • สร้าง defaultdict(int) เพื่อนับจำนวนครั้งที่เจอแต่ละค่าขณะวนลูป

  • วนลูปผ่านลิสต์เดิม เพิ่มตัวนับ ถ้าถึงเกินขีดจำกัดใน my_dict ใช้ continue ข้ามไป ไม่งั้น append เข้าผลลัพธ์

  • แสดงผลลัพธ์ที่ได้