我在字典中有数据,想在另一个字典中得到它,但按以下方式插入/排序:
- 项按键的降序方式排序第一个字母:
'z':1,....,'a':1
- 但是在具有相同首字母的项目组内部,具有相反的排序方向:
'aaa':1,' abb':1,'acc':1,....
这里我有这个任务的代码示例(按键排序),它可以工作,但我正在寻找更优雅的东西:
my_dict = {
'abc': 'aaaa',
'bus': 'bbba',
'apple': 'abbb',
'banana': 'bbaa',
'angel': 'aabb',
'baseball': 'baaa',
}
starting_letters = reversed(sorted({k[0] for k in my_dict.keys()}))
result = {}
for i in starting_letters:
intermediate = {}
for k in my_dict.keys():
if k.startswith(i):
intermediate[k] = my_dict[k]
result.update(dict(sorted(intermediate.items())))
print(result)
这是输出:
'banana':'bbaa',' baseball':'baaa',' bus ':'bbba',' abc ':'aaaa',' angel':'aabb',' apple':'abbb'}
你可以看到它是降序排序的:(键从B开始的项在键从a开始的项之前),但项组按升序排序:
'banana':' bbaa','baseball':'baaa',' bus ':'bbba'
'abc':' aaaa','angel':'aabb',' apple':'abbb'
1条答案
按热度按时间li9yvcax1#
Karl Knechtel的建议有很好的答案,但我没有找到我想要的答案,所以我有自己的答案: