gpt4 book ai didi

python - 如何形成列表列表?

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:08 24 4
gpt4 key购买 nike

我下面的代码是从文件中提取一些部分并将结果显示在单独的列表中。

我想形成一个列表,其中包含所有这些被过滤掉的列表。我试图在我的代码中形成它,但是当我试图打印它时,我得到一个空列表。

import re
hand = open('mbox.txt')

for line in hand:
my_list = list()
line = line.rstrip()
#Extracting out the data from file
x=re.findall('^From .* ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])', line)
#checking the length and checking if the data is not present to the list
if len(x) != 0 and x not in my_list:
my_list.append(x[0])

print my_list

过滤后的列表是:

['15:46:24']
['15:03:18']
['14:50:18']
['11:37:30']
['11:35:08']
['11:12:37']

等等。

最佳答案

有几点需要注意。如果你是重复做正则匹配,我建议你先编译模式,然后再做匹配。此外,您无需手动检查容器的长度来获取其 bool 值 - 只需执行 if container:。使用内置过滤器删除空项目。或者您可以使用一个自动避免重复的集合。我也不确定为什么在进行正则表达式匹配之前要去除空格字符。有必要吗?

import re
match = r"^From .* ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])"

with open("mbox.txt") as f:
for line in f.readlines():
match = filter(None,re.findall(match, line))
data.append(list(match))

print(data)

这就是获取列表列表所需的全部内容。列表理解和过滤器的使用使代码更加紧凑。

关于python - 如何形成列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31765488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com