2024-05-23 18:19:07 发布
网友
我有字典{'Bill': 4, 'Alex' : 4, 'Bob' : 3, "Charles": 7}
{'Bill': 4, 'Alex' : 4, 'Bob' : 3, "Charles": 7}
我需要先把这本词典按数字排序,然后再按字母顺序排序。如果两个项目具有相同的数字键,则需要按字母顺序排序。
输出应该是Bob, Alex, Bill, Charles
Bob, Alex, Bill, Charles
我试过使用lambda、列表理解等,但似乎无法使它们正确排序。
使用带键函数的^{}(按值排序(d[k]),然后使用键k):
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()对字典项(元组)进行排序。您可以指定排序键(按字典的值),然后指定其键:
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']
使用带键函数的^{} (按值排序(
d[k]
),然后使用键k
):使用
sorted()
对字典项(元组)进行排序。您可以指定排序键(按字典的值),然后指定其键:相关问题 更多 >
编程相关推荐