如何按索引从列表中删除元素?

我找到了list.remove(),但这会缓慢地按值扫描列表中的项。


当前回答

您可以使用del或pop根据索引从列表中删除元素。Pop将打印从列表中删除的成员,而列表将删除该成员而不打印。

>>> a=[1,2,3,4,5]
>>> del a[1]
>>> a
[1, 3, 4, 5]
>>> a.pop(1)
 3
>>> a
[1, 4, 5]
>>> 

其他回答

使用以下代码从列表中删除元素:

list = [1, 2, 3, 4]
list.remove(1)
print(list)

output = [2, 3, 4]

如果要从列表中删除索引元素数据,请使用:

list = [1, 2, 3, 4]
list.remove(list[2])
print(list)
output : [1, 2, 4]

使用del语句:

del listName[-N]

例如,如果要删除最后3项,则代码应为:

del listName[-3:]

例如,如果要删除最后8项,则代码应为:

del listName[-8:]

pop对于从列表中删除和保留项目也很有用。del实际上在哪里丢弃了物品。

>>> x = [1, 2, 3, 4]

>>> p = x.pop(1)
>>> p
    2

可以使用del或pop,但我更喜欢del,因为您可以指定索引和切片,让用户对数据有更多的控制。

例如,从所示的列表开始,可以使用del作为切片删除其最后一个元素,然后可以使用pop从结果中删除最后一个。

>>> l = [1,2,3,4,5]
>>> del l[-1:]
>>> l
[1, 2, 3, 4]
>>> l.pop(-1)
4
>>> l
[1, 2, 3]

您可以只搜索要删除的项目。这真的很简单。例子:

    letters = ["a", "b", "c", "d", "e"]
    letters.remove(letters[1])
    print(*letters) # Used with a * to make it unpack you don't have to (Python 3.x or newer)

输出:a c d e