Python 如何使用列表理解获得两个列表的并集?

Python 如何使用列表理解获得两个列表的并集?,python,list-comprehension,Python,List Comprehension,考虑以下列表: a = ['Orange and Banana', 'Orange Banana'] b = ['Grapes', 'Orange Banana'] 如何获得以下结果: c = ['Orange and Banana', 'Orange Banana', 'Grapes'] 谢谢@abarnert如果您有两个以上的列表,您应该使用: >>> a = ['Orange and Banana', 'Orange Banana'] >>> b =

考虑以下列表:

a = ['Orange and Banana', 'Orange Banana']
b = ['Grapes', 'Orange Banana']
如何获得以下结果:

c = ['Orange and Banana', 'Orange Banana', 'Grapes']

谢谢@abarnert

如果您有两个以上的列表,您应该使用:

>>> a = ['Orange and Banana', 'Orange Banana']
>>> b = ['Grapes', 'Orange Banana']
>>> c = ['Foobanana', 'Orange and Banana']
>>> list(set().union(a,b,c))
['Orange and Banana', 'Foobanana', 'Orange Banana', 'Grapes']

我的问题是关于列表理解的。那篇文章没有涉及列表理解的问题。有一个答案,但它是错误的[x代表b中的x,如果x代表a]如果你问“我如何使用列表理解来实现这一点,列表理解是否是实现这一点的合理方式”,这是一个范例。如果你没问这个,那就是一个骗局。“我的Y是对的”这句话太流行了。OP知道Y,但明确询问X。@Coddy我认为这是一个公平的问题,但可能会被问到不同的问题——在这篇文章中XY果汁太多了。从非工作列表理解开始,解释它的作用(正如abarnert指出的,它是交叉点),以及需要什么。至少这样它可能会得到一些考虑。为什么要把
a,b,c
放在一个列表中,这样你就可以再次分解这个列表?只需执行
set().union(a,b,c)
。哦,是的,哈哈哈。。。已编辑。@abarnert,顺便说一句,下一步(takewhile(not_u,count())=)的要点很好。通过使用
set()
,您可以从列表中消除重复项。请注意,“橙色香蕉”在输入中出现两次,但在输出中仅出现一次。有时这可能是可取的,有时不是。这是一个需要注意的重要特性,我们确实需要知道如何做到这两种方法。
set(a+b+c)
应该更快,因为它需要更少的操作
>>> a = ['Orange and Banana', 'Orange Banana']
>>> b = ['Grapes', 'Orange Banana']
>>> c = ['Foobanana', 'Orange and Banana']
>>> list(set().union(a,b,c))
['Orange and Banana', 'Foobanana', 'Orange Banana', 'Grapes']