将字典值合并到一个集合中

时间:2014-09-30 06:46:11

标签: python python-2.6

如何以oneliner的形式执行以下操作:

replacements = set()
for i in replacement_per_file.values():
    replacements.update(i)

4 个答案:

答案 0 :(得分:1)

这样的事情:

replacements = set(x for i in replacement_per_file.values() for x in i)

答案 1 :(得分:0)

如果i是一个列表(或iterable),那么您正在寻找这个:

replacements = set([
    x
    for i in replacement_per_file.values()
    for x in i
])

答案 2 :(得分:0)

来自this postitertools版本:

>>> from itertools import chain
>>> a = [[1, 2], [2, 3]]
>>> set(chain(*a))
set([1, 2, 3])

答案 3 :(得分:0)

你可以这样做:

set().union(replacement_per_file.values())

这比多行方式效率稍低,因为它需要为union的参数创建值引用的副本。