如何删除出现在另一个列表中的列表元素

2024-05-16 11:01:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我绝对是Python的新手。我有两个列表,aabb

aa = [[-10, 6], [-8, 1], [-7, 8], [-5, 3], [-4, 10], [-3, -2], [-2, 5], [0, 0], [1, 7], [3, 2]]
bb = [[-5, 3], [-2, 5], [3, 2], [5, -3], [2, -5], [-3, -2]]

我需要制作另一个列表,该列表的格式与aabb相同,但将aa[i,j]添加到bb中的每个点,即10×6个新点。很多都是多余的,我用numpy.unique删除了它们。现在我想从aa中删除bb中的所有点。如何进行肾盂手术?此外,对代码第一部分的任何注释。现在,如何从cc中删除bb

cc=[]
cc.append([])
cc.append([])

for a in aa:
    for b in bb:
        cc[0].append(a[0]+b[0])
        cc[1].append(a[1]+b[1])

dd=np.unique(np.transpose(cc),axis=0)

Tags: innumpy列表for格式npaacc
2条回答

要创建另一个具有相同格式的数组,请首先将列表转换为凹凸数组,并使用列表理解进行加法

import numpy as np
cc = [list(a + b) for a in np.array(aa) for b in np.array(bb)]

从aa中删除bb中的所有点

result=[a for a in aa if(ele not in bb)]

您可以使用^{}。代码如下:

>>> print([item for item in aa if item not in bb])
[[-10, 6], [-8, 1], [-7, 8], [-4, 10], [0, 0], [1, 7]]

相关问题 更多 >