我有一个嵌套的for循环似乎无法正常工作。当外循环正在执行时,内部循环变量没有更新。
for line in file:
record = line.split(',')
id = record[0]
mas_list.append(id)
for lin in another_file:
rec = lin.split(',')
idd = rec[3]
if idd == id:
mas_list.append("some data")
mas_list.append("some data")
现在这适用于001的id但是当我到id 002时,外部循环会跟踪它,但由于某种原因,内部循环只有第一个项目被附加到列表中
答案 0 :(得分:2)
您正在使用
迭代文件对象for lin in another_file:
在外循环的第一次迭代之后,another_file
耗尽。因此,内部循环在第一次外循环迭代后永远不会执行。
如果你想这样做,你需要像这样再次打开文件
with open("another.txt") as another_file:
for lin in another_file:
...
更好的是,您只能在外部循环之前收集必要的信息,并使用这样的预处理数据
# Create a set of ids from another file
with open("another.txt") as another_file:
ids = {lin.split(',')[3] for lin in another_file}
with open("mainfile.txt") as file:
for line in file:
record_id = line.split(',')[0]
mas_list.append(record_id)
# Check if the record_id is in the set of ids from another file
if record_id in ids:
mas_list.append("some data")