这是列表理解 https://stackoverflow.com/a/29135851/156458:
L = [{k: d[k](v) for (k, v) in l.iteritems()} for l in L]
where
L
是有序字典的列表(即 collections.OrderedDict 的对象),其中字典具有相同的键集。
d
是另一个有序字典,它也具有与之前的有序字典相同的键集。
对于每个key
, d[key]
是一个函数,可以应用于L[i][key]
, i.e. d[key](L[i][key])
.
所有给定的字典都是有序字典,并且它们的键具有相同的顺序。
但该代码将创建一个无序字典。如何以与给定有序字典相同的键顺序创建有序字典?
collections.OrderedDict
只是一个字典,它记住元素包含在其中的顺序。所以你可以像这样用它的构造函数创建一个
[OrderedDict((k, d[k](v)) for (k, v) in l.iteritems()) for l in L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)