从文本提取工作日并映射指定编号的最Pythonic实现方法
最Pythonic的实现方式
核心思路
用字典建立星期名称到指定编号的映射,借助集合自动去重,最后排序得到符合要求的结果。
代码实现
# 定义星期与编号的对应关系(1=周一,7=周日) weekday_map = { 'Monday': 1, 'Tuesday': 2, 'Wednesday': 3, 'Thursday': 4, 'Friday': 5, 'Saturday': 6, 'Sunday': 7 } # 原始输入的工作日列表 raw_weekdays = ['Friday', 'Sunday', 'Sunday', 'Wednesday'] # 一步完成去重、映射、排序 weekdays = sorted({weekday_map[day] for day in raw_weekdays}) print(f"weekdays: {weekdays}")
代码说明
- 字典映射:通过键值对直接完成星期名称到编号的转换,逻辑清晰且查询高效。
- 集合去重:利用集合元素唯一性的特性,用推导式自动过滤重复条目,代码简洁。
- 排序输出:用
sorted()对去重后的编号做升序排列,输出结果符合常规的工作日顺序。
运行代码后会得到预期输出:
weekdays: [3, 5, 7]
内容的提问来源于stack exchange,提问作者Tim Abdiukov
相关产品推荐
相关产品推荐

