我有两个列表a和b,我必须得到两个列表的结果,一个列表的元素在两者中,另一个列表中b的元素不存在a.我必须在python.output中编写代码,应该看起来像这样。
a = ['product','shampoo','vivel','spark']
b = ['random','product','shampoo','nothing']
c = ['product','shampoo']
d = ['random','nothing']
我需要一个有效的,因为我必须多次执行此操作谢谢,如果有任何不清楚的地方,请告诉我。
您可以使用集合操作,因为这本质上是您所追求的。
>>> a = ['product','shampoo','vivel','spark']
>>> b = ['random','product','shampoo','nothing']
列表c
将是一组intersection
的结果
>>> c = set(a).intersection(b)
>>> c
{'shampoo', 'product'}
该列表d
将是一组difference
来自b
的a
的结果。
>>> d = set(b).difference(a)
>>> d
{'random', 'nothing'}
也有用于执行这些操作的集合的运算符
>>> set(a) & set(b)
{'shampoo', 'product'}
>>> set(b) - set(a)
{'random', 'nothing'}
执行此任务的有效方法包括使用 set
-
a = ['product','shampoo','vivel','spark']
b = ['random','product','shampoo','nothing']
c = list(set(a) & set(b))
d = list(set(b) - set(a))
print(c)
print(d)
输出-
['product', 'shampoo']
['nothing', 'random']