Pythonのリストにdict型の変数をappendすると変数がポインタ的に振る舞うので…
リストに複数のdictをappendしようとすると下のように書いた場合、追加したすべてのdict型の変数が同じ値になる。
mylist = []
mydict = {}
for i,v in enumerate(items):
mydict['name'] = v
mydict['value'] = i
mylist.append(mydict)
この場合dict.copy()を使うと適切な結果になる。
for i, v enumerate(items):
mydict['name'] = v
mydict['value'] = i
mylist.append(mydict.copy())