根据位置从python列表中删除元素?

时间:2014-04-08 07:23:58

标签: python python-3.x coding-style

我只是想知道如何能够完全基于位置删除列表的一部分。

rando = keywords[random.randint(0, 14)]
h = 0
for h in range(len(keywords)):
    if rando == keywords[h]:
        position = h

realAns = definitions[position]

我试过

rando.remove[h] 

但它似乎不起作用:(

一旦正确,我可以用什么代码删除该关键字(而不是定义)。感谢。

2 个答案:

答案 0 :(得分:1)

使用del并使用index指定要删除的元素。

>>> a=[i for i in range(1,11)]
>>>a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> del a[0]
>>> a
[2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 

此外,您还可以使用pop pop返回已删除的元素

>>> a=[i for i in range(1,11)]
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a.pop(1)
2
>>> a
[1, 3, 4, 5, 6, 7, 8, 9, 10]
>>> 

如果你没有在pop中指定任何参数,它将删除最后一项。

>>> a=[i for i in range(1,11)]
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a.pop()
10
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 

答案 1 :(得分:0)

如果您还希望获得删除内容,可以执行以下操作:

rando.pop(h)

否则只需:

del rando[h]