循环不正确遍历数组

2024-10-04 01:30:26 发布

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

当我运行代码时,只有数组“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的第一项,我显然希望它是所有项


Tags: csvinfor数组openreadermsrow
1条回答
网友
1楼 · 发布于 2024-10-04 01:30:26

csv.reader()返回生成器。第一次遍历它时,处理所有元素。由于没有更多的元素可以迭代,所有后续的时间都一无所获。你应该把它转换成一个列表

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

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

相关问题 更多 >