在列表列表中搜索值,然后追加到空列表

时间:2019-04-22 08:16:20

标签: python list

我遇到了这个问题:

finalList = []
dateTime = "SCHEDULE: " + str(datetime.datetime.now().strftime("%H%M")) + "H"

for sublist in main_List:
    if dateTime in sublist[0]:
        finalList.append(sublist)

这是main_List的值,它是一个具有列表值的列表,

[['SCHEDULE: 1509H', 'SCHEDULE: 1404H', 'ST: 1500', 'PING: www.google.com'], ['SCHEDULE: 1509H', 'SCHEDULE: 1700H', 'SCHEDULE: 2001H', 'SCHEDULE: 1817H', 'ST: 1169', 'FA']]

我的问题是,如何获取每个列表中的SCHEDULE等于dateTime的值。

我认为我的代码的这一部分是错误的sublist[0],因为它仅获取列表的第一个索引。如何在sublist中搜索值?

2 个答案:

答案 0 :(得分:2)

这里有两个问题:

  1. dateTime = "SCHEDULE: " + str(datetime.datetime.now().strftime("%H%M")这将返回类似'SCHEDULE: 1119'的内容,该内容将缺少结尾的H,与列表中的格式不匹配。
  2. 您应该这样迭代:
for sublist in main_list:
    if dateTime in sublist:
         finalList.append(sublist)

答案 1 :(得分:2)

您需要更改 shedule_date_time 格式,因为您的子列表中包含尾随的 H

main_list = [['SCHEDULE: 1509H', 'SCHEDULE: 1404H', 'ST: 1500', 'PING: www.google.com'], ['SCHEDULE: 1509H', 'SCHEDULE: 1700H', 'SCHEDULE: 2001H', 'SCHEDULE: 1817H', 'ST: 1169', 'FA']]


# adding extra "H" to match with your main_list data
shedule_date_time = "SCHEDULE: " + str(datetime.datetime.now().strftime("%H%MH")) 

finalList = [sublist for sublist in main_list if shedule_date_time in sublist]