我有一个带值
的python字典d = {'A': 0, 'B': 1, 'C': 0, 'D': 4}
result = max(d.iteritems(), key=lambda x: x[1])
result = ('D', 4)
现在,如果没有最大值并且所有值都相等,那么结果应该按键的字母顺序(升序)。
即
d = {'A': 0, 'B': 1, 'C': 0, 'D': 1}
result should be D
d = {'A': 0, 'B': 5, 'C': 5, 'D': 1}
result should be C
如何在Python中完成此操作?
答案 0 :(得分:4)
调整lambda
以检查值后的键(通过返回值键对)
>>> d = {'A': 0, 'B': 1, 'C': 0, 'D': 1}
>>> max(d.iteritems(), key=lambda x: (x[1], x[0]))
('D', 1)
>>> d = {'A': 0, 'B': 5, 'C': 5, 'D': 1}
>>> max(d.iteritems(), key=lambda x: (x[1], x[0]))
('C', 5)