0
OrderedDict
をdict
にカプセル化すると、OrderedDict
が更新されないという問題が発生します。Dictでカプセル化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
データを表示できますか? –
更新されました。 **最後の*データはすべて同じオブジェクトを参照しているため、**すべての*データが表示されています**。 move 'temp_ord = OrderedDict() '(余分な辞書は不要)*ループ内*。 – jonrsharpe
@jonrsharpeどのループで正確に、固定ループを提供できますか? – MtSummerbreeze