Python 官方文档:入门教程 => 点击学习
目录1. 删除列表(list)的三种方式(1).按照元素删除—remove()(2).按照索引删除—pop()(3).按照索引删除—del()2.
my_list = [1, 2, 3, 4, 2, 5]
my_list.remove(2)
print(my_list)
# 结果
[1, 3, 4, 2, 5]
my_list = [1, 2, 3, 4, 2, 5]
my_list.remove(6) # 没有元素6,最终会抛出异常
print(my_list)
# 结果
Traceback (most recent call last):
File "/Users/alien_test.py", line 58, in <module>
my_list.remove(6)
ValueError: list.remove(x): x not in list
# 根据索引删除元素
my_list = [1, 2, 3, 4, 2, 5]
item = my_list.pop(1)
print(my_list)
print(item)
# 结果
[1, 3, 4, 2, 5]
2 # 元素2是对应索引为1的值
# 删除最后一个元素
my_list = [1, 2, 3, 4, 2, 5]
item = my_list.pop()
print(my_list)
print(item)
# 最终结果
[1, 2, 3, 4, 2]
5
# 越界抛出异常
my_list = [1, 2, 3, 4, 2, 5]
item = my_list.pop(8)
print(my_list)
print(item)
# 结果
Traceback (most recent call last):
File "/Users/test/alien_test.py", line 58, in <module>
item = my_list.pop(8)
IndexError: pop index out of range
my_list = [1, 2, 3, 4, 2, 5]
del my_list[1] #等同于 del(my_list[1])
print(my_list)
# 结果
[1, 3, 4, 2, 5]
my_list = [1, 2, 3, 4, 2, 5]
del my_list[8]
print(my_list)
# 异常结果
Traceback (most recent call last):
File "/Users/test/alien_test.py", line 58, in <module>
del my_list[8]
IndexError: list assignment index out of range
【case 1:】
my_list = [1, 2, 2, 3, 2]
for item in my_list:
if item == 2:
my_list.remove(item)
print(my_list)
# [1, 3, 2]
【case 2:】
my_list = [1, 2, 2, 3, 2]
for index in range(len(my_list)):
if my_list[index] == 2:
my_list.pop(index)
print(my_list)
# 结果
Traceback (most recent call last):
File "/Users/test/alien_test.py", line 59, in <module>
if my_list[index] == 2:
IndexError: list index out of range
my_list = [1, 2, 2, 3, 2]
for item in my_list:
print("item-------->", item)
if item == 2:
my_list.remove(item)
print(my_list)
# 结果:
item--------> 1
item--------> 2
item--------> 3
item--------> 2
[1, 3, 2]
【分析过程:】
step1:列表的遍历过程如下
列表的遍历是通过游标来控制列表的位置,从索引为0号位一直到最后一个位置,依次遍历
step2:列表的删除某个元素流程如下
当遍历到索引为1的位置时候,准备删除这个位置元素
my_list = [1, 2, 2, 3, 2]
for index in range(len(my_list) - 1, -1, -1):
item = my_list[index]
print("item-------->", index, "--->", item)
if item == 2:
my_list.pop(index)
print(my_list)
# 结果
item--------> 4 ---> 2
item--------> 3 ---> 3
item--------> 2 ---> 2
item--------> 1 ---> 2
item--------> 0 ---> 1
[1, 3]
1.通过倒序的遍历,可以把所有的2元素都删除了,倒序为什么能解决如上的问题?
2.倒序也会出现删除的元素的位置,被新元素占用的情况?
step1:列表倒序的遍历过程如下
step2:列表的删除某个元素流程如下
当遍历到索引为4的位置时候,准备删除这个位置元素
my_list = [1, 2, 2, 3, 2]
for index in range(len(my_list) - 1, -1, -1):
item = my_list[index]
print("item-------->", index, "--->", item)
if item == 2:
my_list.pop(index)
print(my_list)
my_list = [1, 2, 2, 3, 2]
for index in range(len(my_list) - 1, -1, -1):
item = my_list[index]
print("item-------->", index, "--->", item)
if item == 2:
my_list.remove(item)
print("--->", my_list)
print(my_list)
# 结果
item--------> 4 ---> 2
---> [1, 2, 3, 2] # 此处倒序遍历,其实删除的是从左向右的第一个元素2
item--------> 3 ---> 2
---> [1, 3, 2] # 此除遍历的是第二个2,删除的也是第二个元素
item--------> 2 ---> 2
---> [1, 3] # 次数遍历的是最后一个2,删除的也是这个元素
item--------> 1 ---> 3
item--------> 0 ---> 1
[1, 3]
如上的方式不好的地方是:
到此这篇关于python3列表删除的三种方式实现的文章就介绍到这了,更多相关python3列表删除内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python3列表删除的三种方式实现
本文链接: https://www.lsjlt.com/news/120071.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0