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