簡體   English   中英

Python未輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM