📌  相关文章
📜  Python程序在字典中找到第二个最大值

📅  最后修改于: 2022-05-13 01:55:47.286000             🧑  作者: Mango

Python程序在字典中找到第二个最大值

Python中的字典与其他语言中的关联数组或映射相同。与列表不同,字典将数据存储在键值对中。
让我们看看如何在Python字典中找到第二个最大值。
方法#1:天真的方法:
一般的方法是找到字典的最大值,然后迭代字典,保持必须大于所有其他值且小于最大值的值。

Python3
# Python naive approach to find the
# second largest element in a dictionary
 
# creating a new dictionary
new_dict ={"google":12, "amazon":9, "flipkart":4, "gfg":13}
 
# maximum value
max = max(new_dict.values())
 
# iterate through the dictionary
max2 = 0
for v in new_dict.values():
     if(v>max2 and v


Python3
# Python code to find second largest
# element from a dictionary using sorted() method
 
# creating a new Dictionary
example_dict = {"mark": 13, "steve": 3, "bill": 6, "linus": 11}
 
# now directly print the second largest
# value in the dictionary
print("Output1:", sorted(example_dict.values())[-2])
 
# More than 1 keys with maximum value are present
example_dict = {"fb": 20, "whatsapp": 12, "instagram": 20, "oculus": 10}
print("Output2:", sorted(set(example_dict.values()), reverse=True)[-2])


输出:
12

方法 #2:使用 sorted() 方法
我们可以通过对字典的值进行排序然后从排序列表中检索倒数第二个元素来找到字典中的第二大值。

Python3

# Python code to find second largest
# element from a dictionary using sorted() method
 
# creating a new Dictionary
example_dict = {"mark": 13, "steve": 3, "bill": 6, "linus": 11}
 
# now directly print the second largest
# value in the dictionary
print("Output1:", sorted(example_dict.values())[-2])
 
# More than 1 keys with maximum value are present
example_dict = {"fb": 20, "whatsapp": 12, "instagram": 20, "oculus": 10}
print("Output2:", sorted(set(example_dict.values()), reverse=True)[-2])
输出:
11

解释: example_dict.values() 给出字典中所有值的列表。 sorted() 方法将对 dict_values 列表进行排序。 list(sorted(example_dict.values()))[-2] 将dict_values转换为list,返回排序后的倒数第二个元素,即字典的第二大值。
如果字典中存在多个最大值,如第二个示例所示,将字典值转换为一组将消除重复项。