Python 通过for循环修改OrderedDict的列表

Python 通过for循环修改OrderedDict的列表,python,dictionary,for-loop,ordereddictionary,Python,Dictionary,For Loop,Ordereddictionary,我试图循环一个列表,并重新定义这些OrderedDict元素 为了说明,请考虑以下列表: dict_list = [ OrderedDict([("key1",1)]), OrderedDict([("key1",2)]) ] 我想在所有dicts上添加一个新键“key2” for var in dict_list: var["key2"] = 1 但这将在OrderedDict的末尾添加此键,而我想在开头添加它,因此我尝试以下方法: for var in dict

我试图循环一个列表,并重新定义这些OrderedDict元素

为了说明,请考虑以下列表:

dict_list = [
    OrderedDict([("key1",1)]),
    OrderedDict([("key1",2)])
]
我想在所有dicts上添加一个新键“key2”

for var in dict_list:
     var["key2"] = 1
但这将在OrderedDict的末尾添加此键,而我想在开头添加它,因此我尝试以下方法:

for var in dict_list:
     var = OrderedDict([("key2",1)] + list(var.items()))
在for循环之外不会记住更改(可能是因为我正在尝试重新定义迭代器?

您可以执行以下操作:

var["key2"] = 1
var.move_to_end("key2", last=False)

术语吹毛求疵:
var
不是迭代器,但是是的,您只是将变量
var
赋值,当然,这不会修改
dict\u list
。相反,在enumerate(dict_list)中尝试i,var的
:…
然后在循环中
dict_list[i]=…
可能是因为您没有返回新的ordereddict。在循环或函数外返回什么?这里没有返回,也不应该有返回。无论如何,即使这是一个函数,它也不会修改dict_list@juanpa.arrivillaga我一直在苦苦思索如何调用var^^',在这种情况下,我们称之为var是什么?我经常听到人们为了清晰起见说“循环变量”
last=False
的意思是“添加到开头”()。