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

2024-05-17 17:37:43 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我想做的事情的描述: 我有2个csv文件。 我想在我的两个文件中同时搜索相同的东西(让我们称之为“雨果”)。 问题是它只打印一个而不打印另一个。你知道吗

这是我的密码:

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,用j代替t,传递2个函数。当另一个不在这里时,每一个if都能很好地工作,当我反转其中的2个if时,这和打印aka pm25pl是一样的

什么都做不了。你知道吗

(这里只是我的代码中有兴趣的部分,打开文件等工作正常,'''雨果出现在我的文件中作为“雨果”(双引号))

另外,我不能在国际单项体育联合会外打电话给维克多1号和维克多2号。你知道吗

你知道发生了什么事吗?你知道吗


Tags: 文件csv密码if事情printtryvictor
2条回答

可以使用itertoolzip函数同时遍历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

对每个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]]

相关问题 更多 >