我是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'
答案 0 :(得分:1)
如果您阅读docs,则会看到numpy.delete
返回:
删除了obj指定的元素的arr副本。请注意,删除不会就地发生。
所以,为了使它成功,你将需要:
qundl_arry = np.delete(qundl_arry,alpha)
答案 1 :(得分:1)
此答案针对的是使用 numpy arrays
的人。
这个问题的作者实际上是指 python lists
。
尽管这个答案与问题无关,但我会把它留在这里,因为它可能对其他人有用。
假设您不知道索引,可以创建一个包含所有元素的新数组
qundl_arry
,qundl_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']]