python 如何合并集合列表并将它们 return 作为一个集合?
How can python merges a list of sets and return them as a set?
我有这样的集合列表:
set_list = [{1, 2, 3}, {4, 5, 1, 6}, {2, 3, 6}, {1, 5, 8}]
现在我想将所有集合合并在一起,return 一组像这样的所有集合:
final_set = {1, 2, 3, 4, 5, 6, 8}
我使用过此代码,但它无法正常工作:
tmp_list = []
final_set = set(tmp_list.append(elem) for elem in set_list)
我该怎么办?
您可以使用 reduce
function from functools
module.
>>> from functools import reduce
>>> set_list = [{1,2,3}, {4,5,1,6}, {2,3,6}, {1,5,8}]
>>> reduce(lambda x, y: x | y, set_list)
{1, 2, 3, 4, 5, 6, 8}
您可以遍历列表并创建所有集合的并集:
new_set = set()
for i in set_list:
new_set = set.union(new_set, i)
print(new_set)
输出:
{1, 2, 3, 4, 5, 6, 8}
您可以使用 set().union
解包以获得干净的一行。
>>> set().union(*set_list)
{1, 2, 3, 4, 5, 6, 8}
您可以按如下方式使用理解来做到这一点
set_list = [{1, 2, 3}, {4, 5, 1, 6}, {2, 3, 6}, {1, 5, 8}]
final_set = set(elem for sub in set_list for elem in sub)
print(final_set)
输出
{1, 2, 3, 4, 5, 6, 8}
说明:这是列表列表扁平化理解的简单改编,可以用作 set
s 是可迭代的。
我有这样的集合列表:
set_list = [{1, 2, 3}, {4, 5, 1, 6}, {2, 3, 6}, {1, 5, 8}]
现在我想将所有集合合并在一起,return 一组像这样的所有集合:
final_set = {1, 2, 3, 4, 5, 6, 8}
我使用过此代码,但它无法正常工作:
tmp_list = []
final_set = set(tmp_list.append(elem) for elem in set_list)
我该怎么办?
您可以使用 reduce
function from functools
module.
>>> from functools import reduce
>>> set_list = [{1,2,3}, {4,5,1,6}, {2,3,6}, {1,5,8}]
>>> reduce(lambda x, y: x | y, set_list)
{1, 2, 3, 4, 5, 6, 8}
您可以遍历列表并创建所有集合的并集:
new_set = set()
for i in set_list:
new_set = set.union(new_set, i)
print(new_set)
输出:
{1, 2, 3, 4, 5, 6, 8}
您可以使用 set().union
解包以获得干净的一行。
>>> set().union(*set_list)
{1, 2, 3, 4, 5, 6, 8}
您可以按如下方式使用理解来做到这一点
set_list = [{1, 2, 3}, {4, 5, 1, 6}, {2, 3, 6}, {1, 5, 8}]
final_set = set(elem for sub in set_list for elem in sub)
print(final_set)
输出
{1, 2, 3, 4, 5, 6, 8}
说明:这是列表列表扁平化理解的简单改编,可以用作 set
s 是可迭代的。