Python,从两个列表中删除相似的值

Python, removing similar values from two lists

我有两个列表,我们称它们为 list1list2

list1 是包含我的所有数据值的主列表。

list2 包含必须从 list1 中删除的某些值。 (你可以说它有点像 list1 的子列表)

len(list1) = 13357
len(list2) = 1751

所以要从 list1 中删除 list2 的值,我这样做:

new_list = [x for x in list1 if x not in list2]

那么 你所期望的new_list 的长度:

len(new_list) = len(list1) - len(list2) = 13357 - 1751 = 11606

但是我的 new_list 的长度 = 11584 !!!

这怎么可能????!!!!!!

编辑: 我使用计算从 list1 获得了我的 list2。我还使用 set(list1) & set(list2)

检查了类似的值

list2其实是list1的一个象限,是我之前问过的的后续。 所以从上面 link 你可以看到我的数据有 RA 和 DEC 坐标。在示例中,假设 list1 是我的 RA。

所以一旦我有了象限,我就申请:

for a,b in zip(sliceno,list1):
    if a == 0:
        list2.append(a)

我知道这是我之前问题的后续问题,所以请不要纠结!!

这几乎可以肯定 list2 有 11606 - 11584 = 22 个重复元素。 (并且因为 list2 是 list1 的子集,所以它们也存在于 list1 中)