创建多个列表中所有值的并集的Pythonic方式
我有一个包含多个列表的列表:
lists = [[1,4,3,2,4], [4,5]]
我想把这个列表变成一个单一的列表,并且去掉所有重复的元素;换句话说,就是进行一个集合合并的操作:
desired_result = [1, 2, 3, 4, 5]
有什么简单的方法可以做到这一点吗?
7 个回答
3
你也可以按照这种风格来做
In [12]: a = ['Orange and Banana', 'Orange Banana']
In [13]: b = ['Grapes', 'Orange Banana']
In [14]: c = ['Foobanana', 'Orange and Banana']
In [20]: list(set(a) | set(b) | set(c))
Out[20]: ['Orange and Banana', 'Foobanana', 'Orange Banana', 'Grapes']
In [21]: list(set(a) & set(b) | set(c))
Out[21]: ['Orange and Banana', 'Foobanana', 'Orange Banana']
209
set.union
这个方法可以满足你的需求:
>>> results_list = [[1,2,3], [1,2,4]]
>>> results_union = set().union(*results_list)
>>> print(results_union)
set([1, 2, 3, 4])
你还可以用这个方法处理多个列表,而不仅仅是两个。