遍历一个分块的列表

2024-09-29 02:20:45 发布

您现在位置: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']

我读了很多关于迭代和分块列表的帖子,我被难住了。感谢您的帮助!非常感谢。你知道吗


Tags: in列表forline时间分块chunkbb1
1条回答
网友
1楼 · 发布于 2024-09-29 02:20:45

我认为问题在于hours严格地包含时间。而您的列表同时包含datetime。您需要对字符串使用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中提供的范围内。你知道吗

相关问题 更多 >