Python 如何删除不在给定数组中的多个项

Python 如何删除不在给定数组中的多个项,python,python-3.x,numpy,Python,Python 3.x,Numpy,我有以下代码: delIndex = [] for a in range(0, 10): if a not in found_index and len(found_index) > 0: delIndex.append(a) for index in sorted(delIndex, reverse=True): del faces[index] 此代码删除不在数组中的项目found\u index 有没有一种方法可以通过使用一种完成这项工作或其他事情的

我有以下代码:

delIndex = []
for a in range(0, 10):
    if a not in found_index and len(found_index) > 0:
        delIndex.append(a)
for index in sorted(delIndex, reverse=True):
    del faces[index]
此代码删除不在数组中的项目
found\u index

有没有一种方法可以通过使用一种完成这项工作或其他事情的方法来简化代码?

我想您正在寻找

让我知道这是否是你要找的。或者,为我们提供输入和输出示例,以便我们可以使用您的代码

更新:添加代码示例

代码示例:

#!/usr/bin/env python

mainArray = [1, 2, 3, 4, 5, 6]
arrayRemove = [1, 3, 6]

mainArray = [e for e in mainArray if e not in arrayRemove]
print(mainArray)

我不明白什么是面,所以我只解释了如何通过两组元素的差异移除元素。在您的案例中,
找到了索引
[a表示范围(0,10)]
。使用python内置的
set
,并使用不同的方法-:


您可以将代码简化为:

delIndex = sorted([a for a in range(0, 10) if a not in found_index], reverse=True)  
for index in delIndex:
    del faces[index]

如果您使用列表的更多详细信息和样本更新您的答案
找到的索引
(例如,它是否唯一,它是否包含重复项),以及为什么要进行反向排序,我可能会更新此答案。

如果我理解正确,您希望从列表中筛选出所有元素,包含在第二个列表中:

[element for element in faces if element not in found_index]

你可以用set

像这样试试:-

a = [6,8,10] #to be deleted
b = list(range(11)) #compare list
ls= set(b) ^ set(a)
print(ls)#your output

不知道你到底想做什么。你会问:“有没有一种方法可以通过使用一种方法来简化这项工作或其他事情?”在这种情况下,“其他事情”是什么?以上代码的哪一部分是您想要简化的?还有,
faces
dict来自哪里?什么是“此作业”?为什么使用“numpy”标记?您能保证阵列是唯一的吗?如果您想从
[1,2,3,1]
中删除
1
,您希望得到什么?请查看这些链接:它们可能会帮助您获取信息!欢迎来到SO!请提供一个,因为你的问题目前还不清楚。这属于评论,而不是答案。Hello@Brunodesshuilliers,在投票否决一个新用户之前,你知道它试图免费帮助他的时间,最好教教教这个论坛如何工作。或者,你最终会迫使人们不再花时间去帮助别人。(请记住,下一个用户也会这样做),因为有文档记录,最好提供一个链接,以防有人不知道在哪里阅读。在此基础上,学习如何培训以创建更好的开发人员,而不是培训如何犯错。
a = [6,8,10] #to be deleted
b = list(range(11)) #compare list
ls= set(b) ^ set(a)
print(ls)#your output