python-3.x - 在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)
最后的想法是显示下周垃圾收集的日期和麻袋颜色。
解决方案
这是一个可能的解决方案:
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]))
推荐阅读
- java - 如何从 Spark Java 中的结构中检索值?
- reactjs - 使用旧版本的 react 创建-react-app
- python - pygame如何将文本添加到矩形以仅更新该文本
- python - Django 发送具有禁止访问权限的电子邮件
- powerbi - DAX Measure 用于计算制造和产品中的不同特征数
- python-3.x - multiply(a, b) 函数的时间复杂度
- matplotlib - 与在 jupyter notebook 中渲染相比,保存后 Matplotlib 图形看起来不同
- c - C 和 Masm 程序
- python - python sdist 中应该包含哪些文件?
- java - 对正则表达式感到困惑?如何阅读正则表达式