Python函数仅返回1次迭代的值
我有下面的代码,我在做下面的事情Python函数仅返回1次迭代的值,python,file,function,parsing,Python,File,Function,Parsing,我有下面的代码,我在做下面的事情 解析整个文件并检查每行中的模式。如果该模式存在,它应该将该模式返回到main函数并打印该值 问题:该函数仅返回第一个图案,不检查多行中的相同图案 代码: 如果文件有多行包含abc,它将只打印第一行并跳过其他行。我想打印所有包含abc的行 样本文件 sdfdsffdabcafsfse asasssadfsdadsadsaddsadadabc asfasfdsafdfabc 具有上述代码的输出: sdfdsffdabcafs
sdfdsffdabcafsfse
asasssadfsdadsadsaddsadadabc
asfasfdsafdfabc
具有上述代码的输出:
sdfdsffdabcafsfse
您过早地从此行的函数返回:
return line
这意味着您退出函数,当找到第一个实例时,循环停止迭代
请考虑以下情况,即捕获并返回所有匹配项:
或者,您可以在一个简单的
您难道不知道
return
可以终止函数体吗?虽然这是一个相对简单的问题,但它包含一个小的、自包含的示例,带有示例输入和输出。这是一个“好问题”,所以仅仅因为有人认为OP“太琐碎”就否决它是不公平的。
return line
def find_pattern(file):
out = []
with open(file) as fp:
for line in fp:
if "abc" in line:
out.append(line)
else:
continue
return out
def find_pattern(file):
with open(file) as fp:
return [line for line in fp if "abc" in line]