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

โปรแกรม Python หาค่าสูงสุด 3 อันดับใน Dictionary

โจทย์: กำหนด Dictionary หาค่า (value) สูงสุด 3 อันดับและแสดง

วิธี 1: ใช้ collections.Counter และ most_common()

from collections import Counter
my_dict = {'t': 3, 'u': 4, 't': 6, 'o': 5, 'r': 21}
k = Counter(my_dict)
high = k.most_common(3)
print("Dictionary with 3 highest values:")
print("Keys: Values")
for i in high:
    print(i[0], ":", i[1])

ผลลัพธ์

Dictionary with 3 highest values:
Keys: Values
r : 21
t : 6
o : 5

วิธี 2: ใช้ heapq.nlargest()

(โค้ดตัวอย่างในต้นฉบับซ้ำกับวิธี 1 จริงๆ ควรใช้ heapq.nlargest)

import heapq
my_dict = {'t': 3, 'u': 4, 't': 6, 'o': 5, 'r': 21}
high = heapq.nlargest(3, my_dict.items(), key=lambda x: x[1])
print("Dictionary with 3 highest values:")
for k, v in high:
    print(k, ":", v)

ผลลัพธ์

Dictionary with 3 highest values:
r : 21
t : 6
o : 5

สรุป

เรียนรู้ 2 วิธีหาค่าสูงสุด 3 อันดับใน Dictionary: Counter.most_common() และ heapq.nlargest()