Python 从第二个列表中减去第一个列表中的元素

Python 从第二个列表中减去第一个列表中的元素,python,list,python-3.x,Python,List,Python 3.x,假设我有两个列表:完整链接和href\u链接 我想删除href_链接中的值,这些链接包含完整链接中的重复值 例如: full_links = [ 1,2,3,4,5] href_links = [ 1,2,7,8,9,3] 因此,输出应为: comb_list = [7,8,9] 我的代码是: comb_list = list(set(full_links) - set(href_links)) 但它不起作用 应该是相反的 >>> full_links = [ 1,2,3

假设我有两个列表:完整链接和href\u链接

我想删除href_链接中的值,这些链接包含完整链接中的重复值

例如:

full_links = [ 1,2,3,4,5]
href_links = [ 1,2,7,8,9,3]
因此,输出应为:

comb_list = [7,8,9]
我的代码是:

comb_list = list(set(full_links) - set(href_links))

但它不起作用

应该是相反的

>>> full_links = [ 1,2,3,4,5]
>>> href_links = [ 1,2,7,8,9,3]
>>> comb_list = list(set(full_links)  - set(href_links))
>>> comb_list
[4, 5]
>>> comb_list = list(set(href_links)  - set(full_links))
>>> comb_list
[8, 9, 7]

应该是相反的

>>> full_links = [ 1,2,3,4,5]
>>> href_links = [ 1,2,7,8,9,3]
>>> comb_list = list(set(full_links)  - set(href_links))
>>> comb_list
[4, 5]
>>> comb_list = list(set(href_links)  - set(full_links))
>>> comb_list
[8, 9, 7]

因为它是向后的

comb_list = list(set(href_links) - set(full_links))

因为它是向后的

comb_list = list(set(href_links) - set(full_links))
若要从Y中取出/移除X,请从Y中减去X:Y-X

您想从href_link中删除完整_链接的元素, 也称为差异:

comb_list = list(set(href_links).difference(set(full_links)))
如果您需要保存订单

>>> full_links = [1,2,3,4,5]
>>> href_links = [1,2,7,8,9,3]
>>> full_set = set(full_links)
>>> [i for i in href_links if i not in full_set]
[7, 8, 9]
此外,如果使用差分方法,则无需构造2个集合:

若要从Y中取出/移除X,请从Y中减去X:Y-X

您想从href_link中删除完整_链接的元素, 也称为差异:

comb_list = list(set(href_links).difference(set(full_links)))
如果您需要保存订单

>>> full_links = [1,2,3,4,5]
>>> href_links = [1,2,7,8,9,3]
>>> full_set = set(full_links)
>>> [i for i in href_links if i not in full_set]
[7, 8, 9]
此外,如果使用差分方法,则无需构造2个集合:


因为您使用的是集合,所以我认为在列表中保持顺序并不重要。请注意,使用集合不能处理包含重复项的列表。因为您使用的是集合,所以我认为在列表中保持顺序并不重要。请注意,使用集合不能处理包含重复项的列表。