0
當將OrderedDict
封裝到dict
中時,會出現OrderedDict
未更新的問題。字典中的封裝OrderedDict
目的是爲了獲得與形式的dictonary:
{name1: OrderedDict({year1:amount,year2:amount,...}), name2: OrderedDict({year1:amount,year2:amount,...})}
但是初始化第一temp_ord
後,將不予進一步更新,因此去年金額對可用於每個名稱相同第一後。
CSV結構在列中:名稱年份編號。我不確定這是一個循環錯誤,還是因爲封裝了這些字典。
import csv
from collections import OrderedDict
def plot_names(file_name, names):
temp_dict = {}
temp_ord = OrderedDict({})
with open(file_name) as csvfile:
reader = csv.DictReader(csvfile)
for name in names:
for row in reader:
if name == row["name"]:
temp_ord[row["year"]] = row["number"]
temp_dict[name] = temp_ord
return temp_dict
數據格式:
year name gender number /n 1993 Abarna f 1 /n 1993 Abetare f 1 /n 1993 Abir f 1
你能顯示你的數據嗎? –
它已更新。你看到所有的* last *數據,因爲它們都引用同一個對象**。 *在循環*內移動'temp_ord = OrderedDict()'(額外的字典是不必要的)*。 – jonrsharpe
@jonrsharpe在哪個循環中,你能提供固定循環嗎? – MtSummerbreeze