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

Python - จำกัด Tuples ตามความถี่ของค่าขององค์ประกอบแรก


เมื่อจำเป็นต้องจำกัดทูเพิลตามความถี่ของค่าขององค์ประกอบแรก จะใช้เงื่อนไข 'if' ง่ายๆ พร้อมกับวิธีการวนซ้ำและวิธี 'ผนวก'

ตัวอย่าง

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน

my_list = [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56),(73, 84), (91, 40), (40, 83), (13, 27)]

print("The list is :")
print(my_list)

my_key = 1

my_result = []
mems = dict()
for sub in my_list:

   if sub[0] not in mems.keys():
      mems[sub[0]] = 1
   else:
      mems[sub[0]] += 1
   if mems[sub[0]] <= my_key:
      my_result.append(sub)

print("The filtered tuples are :")
print(my_result)

ผลลัพธ์

The list is :
[(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83), (13, 27)]
The filtered tuples are :
[(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83)]

คำอธิบาย

  • รายการของทูเพิลถูกกำหนดและแสดงบนคอนโซล

  • ค่าจำนวนเต็มถูกกำหนดให้เป็น 1

  • มีการกำหนดรายการที่ว่างเปล่า

  • พจนานุกรมว่างเปล่าถูกสร้างขึ้น

  • รายการทูเพิลถูกทำซ้ำ และหากไม่พบองค์ประกอบในค่าคีย์ของพจนานุกรม 0 th ดัชนีถูกกำหนดให้เป็น 1.

  • มิฉะนั้นจะเพิ่มขึ้น 1

  • หากมีค่าน้อยกว่าหรือเท่ากับคีย์ องค์ประกอบนั้นจะถูกผนวกเข้ากับผลลัพธ์ที่ว่างเปล่า

  • ผลลัพธ์นี้เป็นผลลัพธ์ที่แสดงบนคอนโซล