Skip to main content
 首页 » 编程设计

python之如何在python中按天排序基于键的字典

2025年05月04日14unruledboy

我有 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%')])