python remove和del的区别,python 循环删除元素

来源:互联网 发布:朱雀网络和小米的关系 编辑:程序博客网 时间:2024/06/05 07:22
l = [1,2,3,4]l1 = ll.remove(2)

print (l)

print (l1)

结果为:

[1,3,4]

[1,3,4]

原因是因为python中的赋值其实只是给了一个存该值的地址,remove的删除是将该地址上的值删掉了,如果使用del的话就不会出现这种情况,因为del是根据索引删除,

只删除本数组下该索引的位置


l = [1,2,3,4]for i in l: if i != 4:    l.remove(i)

print (l)

结果为[2,4]

原因是romove删除元素时会将原来存该元素的空间删掉,然后下一个元素自动递补到前面,同时长度减一。

循环删除容易出现数组越界的情况,这时候不能使用索引进行循环:

for i in range(0,len(a)):

if(a[i] == 3)

del.a[i]

如果这样进行删除,一定会出现索引out index的情况。

要使用分片的方式:

l = [1,2,2,3,2,4]for x in l[:]:    if (x == 2):        l.remove(x)print(l)





0 0
原创粉丝点击