簡體   English   中英

Python:在 for 循環之外打印字典僅打印最后一個值

[英]Python: Printing dictionary outside of for loop only prints last value

我制作了一些字典,如下所示。 在 for 循環中打印字典時,它可以工作並打印 CSV 列中的所有值,我也想要它。

但是,當在 for 循環之外打印 StationList 時,它只打印 csv 的最后一個值,我希望它打印所有值。 在 for 循環外打印時,如何將字典獲取到 output 的所有值?

DictConnections = {} 
StationList = {}


with open('londonconnections.csv', 'r') as csvfile: 
reader = csv.DictReader(csvfile, delimiter = ',')
for row in reader: 
    Station1 = (row['station1'])
    Station2 = (row['station2'])
    Time = (row['time']) 
                       
    DictConnections[Station1, Station2] = Time
    StationList = Station1
    

   
print(StationList) 

Output: 
13  

非常感謝您的幫助。

問題是當你這樣做時:

StationList = Station1

變量StationList現在將指向Station1的當前 memory position 。

所以要解決“問題”有兩種可能:

  1. 將打印件放回循環內。
  2. 創建一個列表並在迭代行時添加( append() )所有Station1

對於第二種可能性,您需要在行迭代之前創建一個空列表:

stations = []

然后在循環內(之前放置打印的地方)你 append 到列表中:

stations.append(Station1)

現在您可以打印列表:

print(*stations, sep = "\n")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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