Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python列表中排除公共元素_Python - Fatal编程技术网

从python列表中排除公共元素

从python列表中排除公共元素,python,Python,可能重复: 我有两张单子 例如: A = [1,3,5,7] B = [1,2,3,4,5,6,7,8] 现在,A总是B的子集 我想生成第三个列表C: 其中的元素在B中存在,但在A中不存在 像 谢谢,有一种方法可以做到这一点: [x for x in B if x not in A] 如果您使用Python,我建议您熟悉列表理解。它们是一个非常强大的工具 (有几个人建议使用set。如果只关心元素是否在集合中,这是一个非常好的主意,请注意,它不会保留元素的顺序;列表理解会保持顺序。)一个简单

可能重复:

我有两张单子 例如:

A = [1,3,5,7]
B = [1,2,3,4,5,6,7,8]
现在,A总是B的子集 我想生成第三个列表C: 其中的元素在B中存在,但在A中不存在 像

谢谢,有一种方法可以做到这一点:

[x for x in B if x not in A]
如果您使用Python,我建议您熟悉列表理解。它们是一个非常强大的工具


(有几个人建议使用
set
。如果只关心元素是否在集合中,这是一个非常好的主意,请注意,它不会保留元素的顺序;列表理解会保持顺序。)

一个简单的方法是

C = [x for x in B if x not in A]
对于大型列表,这将变得很慢,因此最好使用
集合
作为
a

A = set(A)
C = [x for x in B if x not in A]
如果您有多个这样的操作,那么始终使用集合可能是最好的选择。如果设置了
A
B
,您只需执行以下操作即可

C = B - A


应该可以了。

不需要
列表<代码>排序
始终生成一个列表。
C = B - A
>>> set(B) - set(A)
set([8, 2, 4, 6])
>>> sorted(set(B) - set(A))
[2, 4, 6, 8]
C = sorted(list(set(B) - set(A)))