如何获取包含在另外两个列表中的元素的列表?

use*_*070 2 python

我们有两个清单:

a=['1','2','3','4']
b=['2','3','4','5']
Run Code Online (Sandbox Code Playgroud)

如何获取包含在两个列表中的元素的列表:

a_and_b=['2','3','4']
Run Code Online (Sandbox Code Playgroud)

以及包含仅包含在一个列表中但不包含在另一个列表中的元素的列表:

only_a=['1']
only_b=['5']
Run Code Online (Sandbox Code Playgroud)

是的,我可以使用周期,但它很蹩脚=)

gho*_*g74 8

如果订单不重要

>>> a=['1','2','3','4']
>>> b=['2','3','4','5']
>>> set(a) & set(b)
set(['3', '2', '4'])
Run Code Online (Sandbox Code Playgroud)

只有一个

>>> set(a).difference(b) # or set(a) - set(b)
set(['1'])
Run Code Online (Sandbox Code Playgroud)

只有b

>>> set(b).difference(a)  # or set(b) - set(a)
set(['5'])
Run Code Online (Sandbox Code Playgroud)


Mat*_*ttH 5

只需使用套装:

>>> a=['1','2','3','4']; b=['2','3','4','5']
>>> a = set(a)
>>> b = set(b)
>>> a & b
set(['3', '2', '4'])
>>> a - b
set(['1'])
>>> b - a
set(['5'])
>>>
Run Code Online (Sandbox Code Playgroud)