python - 遍历分解成块的列表
问题描述
我有一个分块列表,其中包含以下内容:
ChunkedList = ['2018-12-14 15:00:00', 'A : aa1', 'B: bb2', 'C: cc3'] ['2018-12-14 16:00:00', 'A : aa2', 'B: bb2','C: cc1']['2018-12-14 17:00:00', 'A : aa3', 'B: bb1','C: cc3']['2018-12-14 18:00:00', 'A : aa3', 'B: bb1','C: cc3']['2018-12-14 19:00:00', 'A : aa3', 'B: bb1','C: cc3']['2018-12-14 20:00:00', 'A : aa3', 'B: bb1','C: cc3']
如果我在未分块列表上运行以下代码,我会得到包含相关时间的各个行。
import datetime
hours = [(datetime.time(i).strftime('%H:%M:%S')) for i in range(6,18)]
WFList = [line for line in FullList if any(hour in line for hour in hours)]
像这样:
WFList= ['2018-12-14 15:00:00','2018-12-14 16:00:00','2018-12-14 17:00:00']
我当前的分块列表代码是:
for chunk in ChunkedList:
if any(hour in chunk for hour in hours):
print(chunk)
它什么也不返回。我想取回一个包含我范围内时间的块的列表,如下所示:
IdealList = ['2018-12-14 15:00:00', 'A : aa1', 'B: bb2', 'C: cc3'] ['2018-12-14 16:00:00', 'A : aa2', 'B: bb2','C: cc1']['2018-12-14 17:00:00', 'A : aa3', 'B: bb1','C: cc3']
我阅读了很多关于迭代和分块列表的帖子,并被难住了。任何和所有的帮助表示赞赏!谢谢你。
解决方案
我相信问题在于hours
严格包含时间。虽然您的列表同时包含date
和time
。您需要使用split
字符串方法来解析您的列表。尝试这个:
import datetime
hours = [(datetime.time(i).strftime('%H:%M:%S')) for i in range(6,18)]
ChunkedList = [['2018-12-14 15:00:00', 'A : aa1', 'B: bb2', 'C: cc3'],
['2018-12-14 16:00:00', 'A : aa2', 'B: bb2','C: cc1'],
['2018-12-14 17:00:00', 'A : aa3', 'B: bb1','C: cc3'],
['2018-12-14 18:00:00', 'A : aa3', 'B: bb1','C: cc3'],
['2018-12-14 19:00:00', 'A : aa3', 'B: bb1','C: cc3'],
['2018-12-14 20:00:00', 'A : aa3', 'B: bb1','C: cc3']]
result = [big_list for big_list in ChunkedList if big_list[0].split()[1] in hours]
# [['2018-12-14 15:00:00', 'A : aa1', 'B: bb2', 'C: cc3'], ['2018-12-14 16:00:00', 'A : aa2', 'B: bb2', 'C: cc1'], ['2018-12-14 17:00:00', 'A : aa3', 'B: bb1', 'C: cc3']]
big_list[0].split()[1]
仅在时间查看它是否在提供的范围内hours
。
推荐阅读
- javascript - 在JavaScript中的二叉树中查找两个节点是表亲节点还是兄弟节点
- kubernetes - 无法通过 minikube 上的主机名 ping 其他 pod
- python - 中断循环以返回开始并添加更多循环
- android - ListView 对齐 - 如何?
- asp.net - 何时使用 FromUri 何时不在 ASP.NET Web API 中
- android - 无法将系统库链接到供应商二进制文件
- javascript - Is there an easy way to update CSV with an API data?
- javascript - 使用 Vue.js 进行键盘绑定
- macos - 以编程方式设置 UNNotificationSettings.lockScreenSetting
- sql - 将 Oracle 日期算术转换为 PostgreSQL