我有字典 {'Bill': 4, 'Alex' : 4, 'Bob' : 3, "Charles": 7}
我需要先按字母顺序排序这个词典,然后按字母顺序排序.如果2个项目具有相同的数字键,则需要按字母顺序排序.
这个的输出应该是 Bob, Alex, Bill, Charles
我尝试使用lambda,list comprehension等,但我似乎无法让它们正确排序.
使用sorted
键功能(d[k]
首先按值(),然后按键排序k
):
>>> d = {'Bill': 4, 'Alex' : 4, 'Bob' : 3, "Charles": 7} >>> sorted(d, key=lambda k: (d[k], k)) ['Bob', 'Alex', 'Bill', 'Charles']
使用在字典的项目(它们是元组)上排序sorted()
.您可以通过字典的值指定排序键,然后指定其键:
>>> d = {'Bill': 4, 'Alex' : 4, 'Bob' : 3, "Charles": 7} >>> sorted(d.items(), key=lambda x:(x[1],x[0])) [('Bob', 3), ('Alex', 4), ('Bill', 4), ('Charles', 7)] >>> [t[0] for t in sorted(d.items(), key=lambda x:(x[1],x[0]))] ['Bob', 'Alex', 'Bill', 'Charles']