如何以oneliner的形式执行以下操作:
replacements = set()
for i in replacement_per_file.values():
replacements.update(i)
答案 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 post的itertools
版本:
>>> 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
的参数创建值引用的副本。