自己使用python的列表del函数一个思维误区

本文通过实例解析Python列表del方法的使用,包括删除单个或多个元素的操作,并揭示了一个常见误解:在删除元素时,后续元素的索引会改变。通过一个测试案例,演示如何正确使用del方法来移除特定位置的元素,避免因索引变动导致的数据误删。

搜索关于python的list的del

随意找一篇:如下

------------------------------------------------------------------------------------------------------------------

del用于list列表操作,删除一个或者连续几个元素。示例程序如下:

>>> a = [-1, 3, 'aa', 85] # 定义一个list
>>> a
[-1, 3, 'aa', 85]
>>> del a[0] # 删除第0个元素
>>> a
[3, 'aa', 85]
>>> del a[2:4] # 删除从第2个元素开始,到第4个为止的元素。包括头不包括尾
>>> a
[3, 'aa']
>>> del a # 删除整个list
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>>
-------------------------------------------------------------------------------------------------------------------

很简答的很明了的函数。

我自己是做个测试

li = [1,2,3,4,5,6,7,8,9,10]

k = [5, 8]

for i in range(len(k)):
    del li[k[i]]
print li


我是准备希望从1-10中删除第5个和第8个元素(元素从0开始)

但结果是:[1, 2, 3, 4, 5, 7, 8, 9]


一直以为是函数用错了。下午才恍然大悟,自己思维上出问题。

why?

很简单,我是想先删掉第5个然后删掉第8个。

在删掉第5个的时候,原先的list第8个已经不是新list的第8个了。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值