vtu*_*ent 1 python dictionary calendar list ordereddict
我有2个清单
daydate=['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
percentday=['0%', '17%', '27%', '11%', '7%', '19%', '19%']
Run Code Online (Sandbox Code Playgroud)
我做了转换成字典
daydic=dict(zip(daydate, percentday))
输出就像
{'Monday': '17%', 'Tuesday': '27%', 'Friday': '19%', 'Wednesday': '11%', 'Thursday': '7%', 'Sunday': '0%', 'Saturday': '19%'}
Run Code Online (Sandbox Code Playgroud)
我想按照下面的方式将这个字典排序为像白天的元素顺序一样
{'Sunday': '0%','Monday': '17%', 'Tuesday': '27%', 'Wednesday': '11%', 'Thursday': '7%', , 'Friday': '19%','Saturday': '19%'}
Run Code Online (Sandbox Code Playgroud)
帮我
他们,其实,插入排序在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%')])
Run Code Online (Sandbox Code Playgroud)