【发布时间】:2020-06-13 09:51:25
【问题描述】:
我不久前开始使用 python,我再次需要你的帮助,我有一个包含缓存数据的 csv 文件,我使用 for 来遍历数据过滤器并将过滤后的数据保存在一个数组中作为示例
filters = ['LMS', 'atx', 'arx-dsd']
search_result = []
cached_file = open("teste.csv", "r")
search_result.append(cached_file.readline())
for words in filters:
print(words)
if_find = [x for x in cached_file if words in x]
print(if_find)
if if_find:
search_result.extend(if_find)
输出:
LMS
[us-east-1a,windows,running,x86_64,IBM,LMS]
ATX
[]
arx-dsd
[]
没有找到其余的结果,只找到数组中的第一个,如果你单独搜索它会找到所有结果
我认为我的 lambda 不正确,所以结果错误
【问题讨论】:
-
“我的 lambda 不正确”:没有
lambda ...,你不能从一个文件句柄中多次读取,向上读取在reading-and-writing-files -
@Mateus Silva,这行是否正确:if_find = [x for x in cached_file if words in x]?
-
@AaymanKhalid 这条线是正确的,没有循环
标签: python arrays for-loop lambda