Fork me on GitHub

Python删除列表元素的3种方法

之前看教程的时候比较着急,对这些基础掌握不好,过来回顾一下

使用del语句删除

lis = [1, 2, 3, 'a', 'b']
print(lis)

del lis[0]
print(lis)

输出

[1, 2, 3, 'a', 'b']
[2, 3, 'a', 'b']

使用del语句可以删除任何位置处的列表元素,条件是知道索引
如要删除列表中等的 ‘a’ 元素

lis = [1, 2, 3, 'a', 'b']
print(lis)

del lis[3]
print(lis)

输出

[1, 2, 3, 'a', 'b']
[1, 2, 3, 'b']

上面的实例表明,使用del语句将值从列表中删除后,就无法访问了

使用pop()方法删除

pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

lis = [1, 2, 3, 'a', 'b']
print(lis)

a = lis.pop()

print(a)
print(lis)

输出

[1, 2, 3, 'a', 'b']
b
[1, 2, 3, 'a']

可以看出列表末尾的元素被删除并赋值给a中

实际上,pop()方法可以用来删除列表中任何位置的元素,只需要在括号中指定要删除元素的索引即可

lis = [1, 2, 3, 'a', 'b']
print(lis)

a = lis.pop(1)

print(a)
print(lis)

输出

[1, 2, 3, 'a', 'b']
2
[1, 3, 'a', 'b']

可以看出用pop()方法把索引值为1的元素从列表中删除

同del一样,被弹出的元素就不在列表中了

根据值删除元素

有时候不知道元素在列表中的位置,但知道元素的值,就可以用remove()方法删除元素
例如我们要把列表中的元素 3 删除

lis = [1, 2, 3, 'a', 'b']
print(lis)

lis.remove(3)
print(lis)

输出

[1, 2, 3, 'a', 'b']
[1, 2, 'a', 'b']

注意
remove()方法只删除第一个指定的值
如我们列表中有两个元素的值为 3

lis = [1, 2, 3, 'a', 'b', 3]
print(lis)

lis.remove(3)
print(lis)

输出

[1, 2, 3, 'a', 'b', 3]
[1, 2, 'a', 'b', 3]

可以看出只删除了第一次出现的3
我们可以用循环来删除所有的3

lis = [1, 2, 3, 'a', 'b', 3]
print(lis)

while 3 in lis:
    lis.remove(3)
print(lis)

输出

[1, 2, 3, 'a', 'b', 3]
[1, 2, 'a', 'b']
posted @ 2019-09-02 21:42 Chrety 阅读(...) 评论(...) 编辑 收藏