Here is a list comprehension :
L = [{k: d[k](v) for (k, v) in l.iteritems()} for l in L]
在哪里
L
是有序字典列表(即 collections.OrderedDict 的对象),其中字典具有相同的键集。d
是另一个有序字典,它也与前面的有序字典具有相同的键集。对于每个
key
,d[key]
是一个可以应用于L[i][key]
的函数,即d[key](L[i][key])
。
所有给定的字典都是有序的字典,并且在它们的键中具有相同的顺序。
但是代码会创建一个无序字典。如何按照与给定有序词典相同的键顺序创建有序字典?
最佳答案
collections.OrderedDict
只不过是一个字典,它会记住元素包含在其中的顺序。所以你可以像这样用它的构造函数创建一个
[OrderedDict((k, d[k](v)) for (k, v) in l.iteritems()) for l in L]
关于python - 从列表理解创建有序字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29136222/