Python,从两个列表中删除相似的值
Python, removing similar values from two lists
我有两个列表,我们称它们为 list1
和 list2
。
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 中)
我有两个列表,我们称它们为 list1
和 list2
。
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
的一个象限,是我之前问过的list1
是我的 RA。
所以一旦我有了象限,我就申请:
for a,b in zip(sliceno,list1):
if a == 0:
list2.append(a)
我知道这是我之前问题的后续问题,所以请不要纠结!!
这几乎可以肯定 list2 有 11606 - 11584 = 22 个重复元素。 (并且因为 list2 是 list1 的子集,所以它们也存在于 list1 中)