[英]Python not entering in for
為什么在第二個中永遠不會訪問unique [1]? unique是一個字符串數組。
import csv
with open('file.csv', 'rb') as f:
reader = csv.reader(f)
for i in range(len(unique)):
# print unique[i] #prints all the items in the array
for row in reader:
print unique[i] # always prints the first item unique[0]
if row[1]==unique[i]:
print row[1], row[0] # prints only the unique[0] stuff
謝謝
我認為遍歷程序流程會很有用。
首先,它將分配i=0
,然后將讀取整個 CSV文件,為CSV文件中的每一行打印unique[0]
,然后在完成讀取CSV文件后,將進行第二次迭代,並分配i=1
,然后由於程序已完成文件讀取,因此不會for row in reader:
進入for row in reader:
,因此退出循環。
csv.reader(f)
實際不會讀取文件,直到您for row in reader
,之后再無其他內容可讀取了。 如果要多次讀取文件,請事先將其讀入列表,如下所示:
import csv
with open('file.csv', 'rb') as f:
reader = csv.reader(f)
rows = [row for row in reader]
for i in range(len(unique)):
for row in rows:
print unique[i]
if row[1]==unique[i]:
print row[1], row[0]
我認為,如果將嵌套結構更改為:
import csv
res = {}
for x in unique:
res[x] = []
with open('file.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
for i in range(len(unique)):
# print unique[i] #prints all the items in the array
if row[1]==unique[i]:
res[unique[i]].append([row[1],row[0]])
#print row[1], row[0] # prints only the unique[0] stuff
for x in unique:
print res[x]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.