เมื่อต้องการดึงสมาชิกที่ความถี่ (frequency) ในลิสต์เท่ากับค่าของสมาชิกนั้นเอง สามารถใช้ list comprehension, count() และ set() ได้
ตัวอย่าง
my_list = [4, 1, 8, 6, 2, 4, 1, 3, 2, 4, 4]
print("The list is :")
print(my_list)
my_result = list(set([element for element in my_list if my_list.count(element) == element]))
print("The result is :")
print(my_result)
ผลลัพธ์
The list is : [4, 1, 8, 6, 2, 4, 1, 3, 2, 4, 4] The result is : [2, 4]
คำอธิบาย
กำหนดลิสต์ตัวเลขและแสดงผล
ใช้ list comprehension กรองสมาชิกที่
my_list.count(element) == elementแปลงเป็น
set()เพื่อเอาค่าที่ไม่ซ้ำ แล้วแปลงกลับเป็นลิสต์ความถี่: 1=2ครั้ง(≠1), 2=2ครั้ง(=2✓), 3=1ครั้ง(≠3), 4=4ครั้ง(=4✓), 6=1, 8=1
แสดงผลลัพธ์ [2, 4]