python - 从列表理解创建有序字典?

标签 python python-2.7 dictionary

Here is a list comprehension :

L = [{k: d[k](v) for (k, v) in l.iteritems()} for l in L]

在哪里

  • L 是有序字典列表(即 collections.OrderedDict 的对象),其中字典具有相同的键集。

  • d 是另一个有序字典,它也与前面的有序字典具有相同的键集。

  • 对于每个keyd[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/

相关文章:

python - Django 管理错误截断了不正确的 DOUBLE 值 :""

python - 在 Python 中使用二进制数据对 MIME 多部分进行编码?

python - 如何从多个等长数组中删除相同的随机项?

c++ - 如何使用 STL 算法找到最小值和最大值?

python - 如何注销所有进度条?

python - 使用 python 库集成 Facebook

java - 按值对 Map<Key, Value> 进行排序

python - 从列表中删除字典

python - XLWT可以在Linux平台上工作吗?

python - 获取矩阵相邻元素的总和