我有 2 个列表
daydate=['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
percentday=['0%', '17%', '27%', '11%', '7%', '19%', '19%']
我已经通过做转换成字典
daydic=dict(zip(daydate, percentday))
输出是这样的
{'Monday': '17%', 'Tuesday': '27%', 'Friday': '19%', 'Wednesday': '11%', 'Thursday': '7%', 'Sunday': '0%', 'Saturday': '19%'}
我想像下面这样按天对元素的顺序对这个字典进行排序
{'Sunday': '0%','Monday': '17%', 'Tuesday': '27%', 'Wednesday': '11%', 'Thursday': '7%', , 'Friday': '19%','Saturday': '19%'}
帮帮我
请您参考如下方法:
字典不应该被认为是有序的
事实上,它们在 Python 3.6+(官方 3.7+)中是插入顺序,但即便如此,您还是应该更喜欢使用 OrderedDict用于稳健的有序映射。
此外,您永远不必手动输入星期几,您可以从 calendar.day_name 导入并通过 deque 旋转:
from calendar import day_name
from collections import deque, OrderedDict
daydate = deque(day_name)
daydate.rotate(1)
percentday = ['0%', '17%', '27%', '11%', '7%', '19%', '19%']
res = OrderedDict(zip(daydate, percentday))
OrderedDict([('Sunday', '0%'),
('Monday', '17%'),
('Tuesday', '27%'),
('Wednesday', '11%'),
('Thursday', '7%'),
('Friday', '19%'),
('Saturday', '19%')])
