เมื่อต้องการจำกัดความถี่ของสมาชิกในลิสต์ให้ไม่เกินค่าที่กำหนด สามารถใช้ลูป 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เข้าผลลัพธ์แสดงผลลัพธ์ที่ได้