for循环无法正确遍历数组

时间:2019-05-22 21:29:44

标签: python for-loop

运行代码时,只有数组“ listWP”中的第一项会检查它是否在“ dataGA”中。尝试了一堆东西,同样的问题。编码的新知识为无知表示歉意

import csv

f_GA = open('MS_GA.csv', 'rt')
f_WP = open('MS_WP.csv', 'rt')
dataGA = csv.reader(f_GA, delimiter=',') 
dataWP = csv.reader(f_WP, delimiter=',')
listWP = []
for row in dataWP:
    for i in row:
        b = i[29:]
        listWP.append(b)
for url in listWP:
    for row in dataGA:
        for i in row:
            if url in i:
                print (i + " ||is top site")

当前输出是通过dataGA检查的数组listWP的第一项,我显然希望它是所有项

1 个答案:

答案 0 :(得分:0)

csv.reader()返回一个生成器。第一次迭代时,您将处理所有元素。由于没有更多的元素可以循环访问,因此所有后续时间都一无所获。您应该将其转换为列表。

dataGA = list(csv.reader(f_GA, delimiter = ','))

但是,如果重新设计数据结构可能会更好。代替所有这些嵌套循环,请将dataGA的内容转换为set,然后仅使用if url in url_set: