我的脚本只能在2上运行1“if”

时间:2017-02-03 17:26:34

标签: python if-statement

以下是我想要做的事情的描述: 我有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

你知道发生了什么吗?

2 个答案:

答案 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]]