首页 > 解决方案 > 在python3中对字典进行排序

问题描述

我有一本从我们的垃圾收集日(即三月和四月的每个星期一)创建的字典:('3 pink':14 是星期二,因为星期一是英国的假期)

'0 black': 9
'0 pink': 2
'1 black': 23
'1 pink': 16
'2 black': 6
'2 pink': 30
'3 black': 20
'3 pink': 14

我花了很多时间试图把它变成一个顺序:

'0 pink': 2
'0 black': 9
'1 pink': 16
'1 black': 23
'2 pink': 30
'2 black': 6
'3 pink': 14
'3 black': 20

但我似乎做不到,需要一些帮助或想法。

我是 python 新手,并且到目前为止已经使用 YouTube 等自学了。因此我现在被卡住了。

字典是使用以下方法创建的:

rubbish = {}
for idx in range(4):
    rubbish[str(idx) + " black"] = int(data.select(".normal")[idx].text)
    rubbish[str(idx) + " pink"] = int(data.select(".pink")[idx].text)

最后的想法是显示下周垃圾收集的日期和麻袋颜色。

标签: python-3.xdictionary

解决方案


这是一个可能的解决方案:

from collections import OrderedDict

new_dict = OrderedDict(sorted(your_dict.items(),
                              key=lambda x: (int(x[0].split()[0]), x[1])))

您可能只想保留键值对列表:

lst = sorted(your_dict.items(),
             key=lambda x: (int(x[0].split()[0]), x[1]))

推荐阅读