Python 通过for循环修改OrderedDict的列表
我试图循环一个列表,并重新定义这些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
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
的意思是“添加到开头”()。