假设定义一字典,m = {“a”:3,”e”:6,”b”:2,”g”:7,”f”:7,”c”:1,”d”:5},在不知道key的情况下如何找出字典中value最大的所有key-value对?下面讨论几种方法。
1)通过m.values()和max()函数
第一步,通过max()函数找到字典中的value最大值。
1 max(m.values())
结果为7
第二步,再通过value=7遍历字典找出所有value=7的键值对。
for key,value inm.items():if(value ==max(m.values())):print key,value
2)通过sort()函数排序所有的value
1 values =m.values()2 values.sort()3 print values[len(values)-1]
结果同样为7,其余步骤通1)中的第二步
3)通过map()函数
keys =m.keys()
keys.sort()
ma=map(m.get,keys)print ma[len(ma) – 1]
4)通过sort()函数排序所有的items
1 #print m.items()
2 items =m.items()3 items.sort(key=lambda x:x[1])4 print items[len(items) – 1]
5)通过max()函数指定key函数
#print m.items()
print max(m.items(),key=lambda x:x[1])
6)通过zip()和max()函数
1 printm.keys()2 printm.values()3 printzip(m.values(),m.keys())4 print max(zip(m.values(),m.keys()))
7)通过sorted()函数
1 print sorted(m.items(), key=lambda x: x[1])2 print sorted(m.items(),key=lambda x:x[1])[len(sorted(m.items(),key=lambda x:x[1])) – 1]
另外,sorted(m, reverse=True)等价于list(reversed(sorted(reversed(m))))。