在python中从数组中删除元素

时间:2013-07-22 11:17:13

标签: python arrays python-2.7

考虑数组a= [1, 2, 3, 1, 2, 3]。现在假设我想在python中删除此数组中的所有2。所以我申请a.remove(2)。然而,出来的结果是[1, 3, 1, 2, 3],即只删除了前2。如何删除阵列中出现的所有2?通常,给定一个数组和一个元素p,如何删除数组中等于p的所有元素?

编辑: - 我想我应该提一下,这个问题的灵感源于一个辉煌的计算机科学问题。

2 个答案:

答案 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]