如何从Python列表中提取日期年月并去除重复值
错误原因
你当前的代码逻辑是先对完整的「日/月/年」字符串做去重,只要日期的「日」字段不同,哪怕年月完全一致,也会被判定为不同的字符串保留,后续提取年月后自然就会出现重复值。
修正方案
调整执行顺序:先提取所有日期的年月信息,再对年月做去重、排序后输出即可。
修正后代码
a = ['26/09/2021', '29/09/2021','26/07/2021', '29/07/2021','26/07/2021', '29/09/2021','26/07/2022', '29/09/2022'] def rdm(l): # 先提取所有年月值 year_month_list = ["/".join(date.split('/')[1:3]) for date in l] # 对年月去重、排序后输出 for ym in sorted(set(year_month_list)): print(ym) rdm(a)
如果追求更简洁的写法,可以直接用集合推导式一步完成提取+去重:
def rdm(l): for ym in sorted({"/".join(date.split('/')[1:3]) for date in l}): print(ym)
输出结果
07/2021 07/2022 09/2021 09/2022
内容的提问来源于stack exchange,提问作者kanwarprogrammer
相关产品推荐
相关产品推荐

