运行代码时,只有数组“ 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的第一项,我显然希望它是所有项
答案 0 :(得分:0)
csv.reader()
返回一个生成器。第一次迭代时,您将处理所有元素。由于没有更多的元素可以循环访问,因此所有后续时间都一无所获。您应该将其转换为列表。
dataGA = list(csv.reader(f_GA, delimiter = ','))
但是,如果重新设计数据结构可能会更好。代替所有这些嵌套循环,请将dataGA
的内容转换为set
,然后仅使用if url in url_set:
。