0

我有一本字典,其中值元素是列表:

d1={'A': [], 'C': ['SUV'], 'B': []}

只有当列表非空时,我才需要将这些值连接到一个列表中。
预期输出:

o=['SUV']

帮助表示赞赏。

4

4 回答 4

6
from itertools import chain
d1={'A': [], 'C': ['SUV'], 'B': []}
print list(chain.from_iterable(d1.itervalues()))
于 2013-06-03T07:25:25.817 回答
3
>>> d1 = {'A': [], 'C': ['SUV'], 'B': []}
>>> [ele for lst in d1.itervalues() for ele in lst]
['SUV']
于 2013-06-03T07:26:58.740 回答
3

您可以使用itertools.chain,但顺序可以是任意的,因为 dicts 是无序的集合。因此可能必须根据键或值对字典进行排序才能获得所需的结果。

>>> d1={'A': [], 'C': ['SUV'], 'B': []}
>>> from itertools import chain
>>> list(chain(*d1.values())) # or use d1.itervalues() as it returns an iterator(memory efficient)
['SUV']
于 2013-06-03T07:25:15.197 回答
0
>>> from operator import add
>>> d1={'A': [], 'C': ['SUV'], 'B': []}
>>> reduce(add,d1.itervalues())
['SUV']

或者更全面的例子:

>>> d2={'A': ["I","Don't","Drive"], 'C': ['SUV'], 'B': ["Boy"]}
>>> reduce(add,d2.itervalues())
['I', "Don't", 'Drive', 'SUV', 'Boy']
于 2013-06-03T07:30:02.330 回答