python - 根据月份对元组列表进行排序
问题描述
我有这样的东西
print(x)
>>> [('01/01-01/03', 4), ('01/06-01/10', 5), ('01/13-01/17', 4), ('01/20-01/24', 5), ('01/27-01/31', 5), ('02/03-02/07', 5) ... ]
整整一年。
它包含str
一周中的天数和工作日数(5 - 节假日)。我想从 7 月(第 7 个月)开始对此list
进行排序。tuples
所以像这样
x.sort(first occurrence of `07/` in str of index 0 of tuples in list)
解决方案
我认为这可以满足您的要求:
data = [('01/01-01/03', 4), ('01/06-01/10', 5), ('01/13-01/17', 4), ('01/20-01/24', 5), ('01/27-01/31', 5), ('02/03-02/07', 5),
('07/20-07/24', 5), ('07/27-07/31', 5), ('08/03-08/07', 5)]
def sort_key(t):
m = re.match(r"(\d\d)/(\d\d)-\d\d/\d\d", t[0])
month = int(m.group(1))
day = int(m.group(2))
if month < 7:
month += 12
return month * 100 + day
data_sorted = sorted(data, key=sort_key)
print(data_sorted)
结果:
[('07/20-07/24', 5), ('07/27-07/31', 5), ('08/03-08/07', 5), ('01/01-01/03', 4), ('01/06-01/10', 5), ('01/13-01/17', 4), ('01/20-01/24', 5), ('01/27-01/31', 5), ('02/03-02/07', 5)]
推荐阅读
- wordpress - 羽化 iframe 的多个实例 - 未触发
- ios - 在swift4中设置和获取数组时发生奇怪的事情
- javascript - 我没有收到来自烧瓶服务器的套接字响应
- python - Jupyter 实验室:为什么单行变量不生成输出?
- asp.net-core - Asp.Net Core 2.1 在 Head 标签之间使用 ViewComponents 动态获取元数据
- c++ - Windows FileOpenDialog 返回错误的路径
- python - 如何从二进制字符串创建 PDF?
- python - 使用时间序列预测系列中的下一个事件
- node.js - 如何在存储上创建具有完全读/写管理员权限的 Firebase Cloud 功能?
- sql - T-SQL:检查表中是否存在数据