【发布时间】:2013-07-12 09:57:07
【问题描述】:
我想知道 是否可以比
更短地过滤字典>>> a={1:'a',2:'b',3:'c',4:'d',5:'e'}
>>> filterlist=[1,3,5]
>>> b=dict((key,value) for key,value in a.iteritems() if key in filterlist)
>>> b
{1: 'a', 3: 'c', 5: 'e'}
过滤(排序)可能基于值或键
EDIT1 :正如下面提到的那样,它的过滤不排序
【问题讨论】:
-
“排序”?这里没有排序...
-
Python 字典没有固定顺序;您无法对字典中的键进行排序。您可以生成键和/或值的排序列表,但不能生成排序字典。
-
从 python 2.7 开始,有一个collections.OrderedDict,它会记住第一次插入键的顺序。
-
嗯,比你已有的那一行短吗?
dict(i for i in a.items() if i[0] in filterlist)
标签: python sorting dictionary python-2.6