从python列表中删除元素

时间:2017-04-07 21:33:32

标签: python arrays numpy

我是python的新手。我想从这个 python列表

中删除一个元素
qundl_arry = [[u'WIKI/DIS.11'], [u'WIKI/HD.11'], [u'WIKI/MCD1.11'], 
 [u'WIKI/AZO.11'], [u'WIKI/BBY1.11'], [u'WIKI/HRB.11']]

我想删除的元素是:

alpha = [u'WIKI/MCD1.11']

当我执行以下代码时

np.delete(qundl_arry,alpha)

我收到以下错误

ValueError: invalid literal for long() with base 10: 'WIKI/MCD1.11'

3 个答案:

答案 0 :(得分:1)

如果您阅读docs,则会看到numpy.delete返回:

  

删除了obj指定的元素的arr副本。请注意,删除不会就地发生

所以,为了使它成功,你将需要:

qundl_arry = np.delete(qundl_arry,alpha)

答案 1 :(得分:1)

此答案针对的是使用 numpy arrays 的人。 这个问题的作者实际上是指 python lists 。 尽管这个答案与问题无关,但我会把它留在这里,因为它可能对其他人有用。

假设您不知道索引,可以创建一个包含所有元素的新数组 qundl_arryqundl_arry == alpha除外。

示例:

qundl_arry = np.array([[u'WIKI/DIS.11'], [u'WIKI/HD.11'], [u'WIKI/MCD1.11'], [u'WIKI/AZO.11'], [u'WIKI/BBY1.11'], [u'WIKI/HRB.11']])

alpha = u'WIKI/MCD1.11'

qundl_arry_new = qundl_arry[qundl_arry != alpha]

print(qundl_arry_new)
# ['WIKI/DIS.11' 'WIKI/HD.11' 'WIKI/AZO.11' 'WIKI/BBY1.11' 'WIKI/HRB.11']

注意:

np.delete返回一个数组。与上面的代码类似,np.delete将保持qundl_arry不变。

答案 2 :(得分:0)

这是一个普通的Python list,而不是numpy数组。

只需使用:

>>> qundl_arry = [
    [u'WIKI/DIS.11'], [u'WIKI/HD.11'], [u'WIKI/MCD1.11'], 
    [u'WIKI/AZO.11'], [u'WIKI/BBY1.11'], [u'WIKI/HRB.11']
]
>>> alpha = [u'WIKI/MCD1.11']
>>> index = qundl_arry.index(alpha)
>>> index
2
>>> qundl_arry.pop(index)
[u'WIKI/MCD1.11']
>>> qundl_arry
[[u'WIKI/DIS.11'], [u'WIKI/HD.11'], [u'WIKI/AZO.11'], [u'WIKI/BBY1.11'], [u'WIKI/HRB.11']]