python - 在 Python 中过滤包含混合日期格式的列表
问题描述
假设我有一个 Python 格式的日期列表,格式为YYYY-mm-dd
or 或YYYY-mm
.
['2020-08-11', '2020-08-10', '2020-08-09', '2020-08-08', '2020-08-07',
'2020-08-06', '2020-08-05', '2020-08-04', '2020-08-03', '2020-08-02',
'2020-08-01', '2020-08', '2020-07', '2020-06', '2020-05', '2020-04',
'2020-03', '2020-02', '2020-01']
YYYY-mm
如果已经存在更具体的日期,我想从列表中删除任何日期。
所以在上面的例子中,我们需要删除'2020-08'
,因为'2020-08-01'
to'2020-08-11'
在列表中。
所以过滤后的列表是这样的:
['2020-08-11', '2020-08-10', '2020-08-09', '2020-08-08', '2020-08-07',
'2020-08-06', '2020-08-05', '2020-08-04', '2020-08-03', '2020-08-02',
'2020-08-01', '2020-07', '2020-06', '2020-05', '2020-04', '2020-03',
'2020-02', '2020-01']
有没有一种优雅而快速的方法来实现这一点?提前致谢。
解决方案
您可以从完整日期构建一组所有月份部分,然后从该集中出现的原始数据中过滤掉条目:
months_in_dates = {d[:7] for d in data if len(d) > 7}
filtered = [d for d in data if d not in months_in_dates]
推荐阅读
- mirth - Mirth - 如何在有多个目的地时处理响应
- flutter - 如何通过引用有状态小部件来传递数据?我想更改有状态小部件内的变量并更新原始变量
- python - 来自不同位置的 2 个输入 python 多线程
- sqlite - 运行 Sqlite 批处理文件以读取同一目录中的所有 .txt 文件
- python - 清理时出现python多进程socket.error
- javascript - 0 在 ES6 中被认为是真的吗?
- file - 从外部访问共享首选项/将值存储到新文件中并从外部访问它
- javascript - 有没有办法用代码“清除网站数据”浏览器?
- javascript - 在Javascript中,有没有一种多态设置器的方法
- visual-studio - Visual Studio 从另一个文件打开类的文件