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

Python – ดึงสมาชิกที่ความถี่เท่ากับค่าของมันเอง

เมื่อต้องการดึงสมาชิกที่ความถี่ (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]