以下是我想要做的事情的描述: 我有2个csv文件。 我想在同一时间在我的2个文件中搜索同一个东西(我们称之为“hugo”)。 问题是它只打印一个而不打印另一个。
这是我的代码:
try:
while True:
if pm10pl[j][2] == '"Victor Hugo"':
victor1 = pm10pl[j]
print victor1
if pm25pl[t][2] == '"Victor Hugo"':
victor2= pm25pl[t]
print victor2
j=j+1
t=t+1
except IndexError:
pass
我尝试了不同的东西,比如elif而不是if,用t替换t,传递2个函数。当另一个不在这里时,每个如果工作得很好,当我颠倒其中的两个时,这就像打印名为pm25pl一样。
无能为力。
(这里只是我感兴趣的代码部分,文件打开等工作正常,'“”'正常hugo在我的文件中出现为“hugo”(带双引号))
另外,我不能在if。
之外调用victor1和victor2你知道发生了什么吗?
答案 0 :(得分:2)
您可以使用itertool
zip
功能同时迭代2个列表。
import itertools
l = []
for victor1, victor2 in itertools.izip_longest(pm10pl, pm25pl):
if victor1 and victor1[2] == '"Victor Hugo"':
#print victor1
if victor2 and victor2[2] == '"Victor Hugo"':
#print victor2
l.append((victor1, victor2)) # add the pair to list.
for i in l: # prints all pairs.
print i
答案 1 :(得分:0)
对每个csv文件执行一次列表解析:
[pm10pl[i] for i in range(0,len(pm10pl)) if 'Victor Hugo' in pm10pl[i][2]]
[pm25pl[i] for i in range(0,len(pm25pl)) if 'Victor Hugo' in pm25pl[i][2]]