
我正在嘗試遍歷回圈以更改字典的值。每條線路都有不同的棒球隊。當我列印年份時,它會正確列印出鍵,但值全部更改為行的最后一個元素。例如,1903:'NY Yankees',1905:'NY Yankees' ... 2021:'NY Yankees'。如何將正確的值分配到字典中?
lines = a.readlines()
print(lines)
for i in range(1903,2022):
if i == 1904:
continue
elif i == 1994:
continue
else:
years.update({i:i})
for j in lines:
years.update({i:j})
我希望在列印年份時得到,1903:'行中的第一行',1905:'行中的第二行'......真正的結果是:1903:'行中的最后一個元素' 1905:'行中的最后一個元素' ...
uj5u.com熱心網友回復:
字典鍵是唯一的:對于 j in lines:years.update({i:j}) 將更新 years[i] 幾次,只保留最新的值,這將是最后一行!
要解決這個問題,請同時迭代幾年的鍵和這樣的行:請注意,您必須取消縮進才能將其從 else: bloc 中拉出。
這是完整的代碼,簡化了鍵的創建:
lines = a.readlines()
print(lines)
years = {}
years_list = [i for i in range(1903,2022) if i != 1904 and i != 1994]
for k,j in zip(years_list,lines):
years.update({k:j}) # or more simply years[k] = j
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/525162.html
標籤:Python循环字典
上一篇:底層邏輯-曹政
下一篇:計算價格小計的程式運行不正常
