Python如何生成两日间星期列表及获取星期名称索引?
问题解答
1. 简便获取两天之间的完整星期列表
可以借助Python标准库的calendar模块,结合列表切片快速实现,无需手动编写复杂循环判断:
import calendar # 获取标准英文星期全称列表(若需固定顺序,也可手动定义:['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']) full_week = list(calendar.day_name) # 输入的起始和结束星期 start_end = ['Monday', 'Thursday'] start, end = start_end # 获取两个星期的索引 start_idx = full_week.index(start) end_idx = full_week.index(end) # 处理两种情况:正常顺序(起始在结束前)、跨周末循环(比如周五到周一) if start_idx <= end_idx: result = full_week[start_idx:end_idx + 1] else: result = full_week[start_idx:] + full_week[:end_idx + 1] print(result) # 输出: ['Monday', 'Tuesday', 'Wednesday', 'Thursday']
这种方法利用标准库资源,通过切片语法简化区间提取逻辑,比自定义函数更简洁高效。
2. 获取指定星期几的索引
直接使用列表的index()方法即可,支持手动定义星期列表或结合calendar模块:
方法一:手动定义列表
full_week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] # 获取Wednesday的索引 wednesday_idx = full_week.index('Wednesday') print(wednesday_idx) # 输出: 2(索引从0开始计数)
方法二:结合calendar模块
import calendar full_week = list(calendar.day_name) wednesday_idx = full_week.index('Wednesday') print(wednesday_idx) # 输出对应索引
注意:
calendar.day_name的顺序会受系统locale影响,如果需要固定的星期顺序,建议手动定义列表。
内容的提问来源于stack exchange,提问作者z star
相关产品推荐
相关产品推荐

