考虑数组a= [1, 2, 3, 1, 2, 3]
。现在假设我想在python中删除此数组中的所有2。所以我申请a.remove(2)
。然而,出来的结果是[1, 3, 1, 2, 3]
,即只删除了前2。如何删除阵列中出现的所有2?通常,给定一个数组和一个元素p,如何删除数组中等于p的所有元素?
编辑: - 我想我应该提一下,这个问题的灵感源于一个辉煌的计算机科学问题。
答案 0 :(得分:4)
使用列表推导来构建替换列表,其中所有元素不等于p
:
a = [i for i in a if i != p]
请注意,在Python中,数据类型称为list
,而不是数组。
答案 1 :(得分:3)
您可以使用filter()
。
>>> a= [1, 2, 3, 1, 2, 3]
>>> filter(lambda x: x != 2, a)
[1, 3, 1, 3]
在一个功能中:
>>> def removeAll(inList, num):
return filter(lambda elem: elem != num, inList)
>>> removeAll(a, 2)
[1, 3, 1, 3]