del和remove python_python列表中del与remove用法详细介绍

今天在抓取数据的时候,遇到一个问题困扰了我好久,后来发现原来是基础不牢引发的bug。下面我就给大家分享一下,关于列表中的del与remove用法深究。看代码strlist11=['1','2','3','@','@','4','5','6','#','7','8','9','%','10','11','12','$','13','14']

strlist1=['1','2','3','@','4','5','6','#','7','8','9','%','10','11','12','$','13','14']

strlist2=['1','2','3','@','4','5','6','#','7','8','9','%','10','11','12','$','13','14']

strlist4=['1','2','3','@','@','4','5','6','#','7','8','9','%','10','11','12','$','13','14']

strlist3=['1','2','3','@','@','4','5','6','#','7','8','9','%','10','11','12','$','13','14']

shanchu=['@','#','%','$']

i=0

for str in strlist1:

for shan in shanchu:

if shan==str:

del strlist1[i]

break

i+=1

# strlist1中要被删除元素不在一起

m=0

for str in strlist11:

for shan in shanchu:

# 在这里我们打印一下strlist11[m]与strlist3[m]

print('strlist3[%d]:%s===strlist11[%d]:%s'%(m,strlist3[m],m,strlist11[m]))

if shan==str:

del strlist11[m]

break

m+=1

print('*' * 10)

#strlist11中要被删除元素在一起

for str in strlist2:

for shan in shanchu:

if shan==str:

strlist2.remove(str)

break

# strlist2中要被删除元素不在一起

n=0

for str in strlist4:

# 在这里我们打印一下strlist11[n]与strlist3[n]

print('strlist3[%d]:%s===strlist4[%d]:%s' % (n,strlist3[n],n, strlist4[n]))

for shan in shanchu:

if shan==str:

strlist4.remove(str)

break

n+=1

print('*'*10)

# strlist4中要被删除元素在一起

print('# strlist1中要被删除元素不在一起')

print(strlist1)

print('# strlist11中要被删除元素在一起')

print(strlist11)

print('# strlist2中要被删除元素不在一起')

print(strlist2)

print('# strlist4中要被删除元素在一起')

print(strlist4)

# 打印结果如下

# strlist1中要被删除元素不在一起

# ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist11中要被删除元素在一起

# ['1', '2', '3', '@', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist2中要被删除元素不在一起

# ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist4中要被删除元素在一起

# ['1', '2', '3', '@', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# 可怕吗,居然没删掉

# 现在来拿strlist3看一下为什么被删除的元素在一起后就不能被删除了,在strlist11与strlist3中设置下标,每次循环strlist11或者strlist3时打印strlist3与strlist11,或者打印strlist3与strlist11

# 打印结果如下

# strlist3[0]:1===strlist11[0]:1

# strlist3[0]:1===strlist11[0]:1

# strlist3[0]:1===strlist11[0]:1

# strlist3[0]:1===strlist11[0]:1

# **********

# strlist3[1]:2===strlist11[1]:2

# strlist3[1]:2===strlist11[1]:2

# strlist3[1]:2===strlist11[1]:2

# strlist3[1]:2===strlist11[1]:2

# **********

# strlist3[2]:3===strlist11[2]:3

# strlist3[2]:3===strlist11[2]:3

# strlist3[2]:3===strlist11[2]:3

# strlist3[2]:3===strlist11[2]:3

# **********

# strlist3[3]:@===strlist11[3]:@

# **********

# strlist3[4]:@===strlist11[4]:4

# strlist3[4]:@===strlist11[4]:4

# strlist3[4]:@===strlist11[4]:4

# strlist3[4]:@===strlist11[4]:4

# **********

# strlist3[5]:4===strlist11[5]:5

# strlist3[5]:4===strlist11[5]:5

# strlist3[5]:4===strlist11[5]:5

# strlist3[5]:4===strlist11[5]:5

# **********

# strlist3[6]:5===strlist11[6]:6

# strlist3[6]:5===strlist11[6]:6

# strlist3[6]:5===strlist11[6]:6

# strlist3[6]:5===strlist11[6]:6

# **********

# strlist3[7]:6===strlist11[7]:#

# strlist3[7]:6===strlist11[7]:#

# **********

# strlist3[8]:#===strlist11[8]:8

# strlist3[8]:#===strlist11[8]:8

# strlist3[8]:#===strlist11[8]:8

# strlist3[8]:#===strlist11[8]:8

# **********

# strlist3[9]:7===strlist11[9]:9

# strlist3[9]:7===strlist11[9]:9

# strlist3[9]:7===strlist11[9]:9

# strlist3[9]:7===strlist11[9]:9

# **********

# strlist3[10]:8===strlist11[10]:%

# strlist3[10]:8===strlist11[10]:%

# strlist3[10]:8===strlist11[10]:%

# **********

# strlist3[11]:9===strlist11[11]:11

# strlist3[11]:9===strlist11[11]:11

# strlist3[11]:9===strlist11[11]:11

# strlist3[11]:9===strlist11[11]:11

# **********

# strlist3[12]:%===strlist11[12]:12

# strlist3[12]:%===strlist11[12]:12

# strlist3[12]:%===strlist11[12]:12

# strlist3[12]:%===strlist11[12]:12

# **********

# strlist3[13]:10===strlist11[13]:$

# strlist3[13]:10===strlist11[13]:$

# strlist3[13]:10===strlist11[13]:$

# strlist3[13]:10===strlist11[13]:$

# **********

# strlist3[14]:11===strlist11[14]:14

# strlist3[14]:11===strlist11[14]:14

# strlist3[14]:11===strlist11[14]:14

# strlist3[14]:11===strlist11[14]:14

# **********

# strlist3[0]:1===strlist4[0]:1

# **********

# strlist3[1]:2===strlist4[1]:2

# **********

# strlist3[2]:3===strlist4[2]:3

# **********

# strlist3[3]:@===strlist4[3]:@

# **********

# strlist3[4]:@===strlist4[4]:4

# **********

# strlist3[5]:4===strlist4[5]:5

# **********

# strlist3[6]:5===strlist4[6]:6

# **********

# strlist3[7]:6===strlist4[7]:#

# **********

# strlist3[8]:#===strlist4[8]:8

# **********

# strlist3[9]:7===strlist4[9]:9

# **********

# strlist3[10]:8===strlist4[10]:%

# **********

# strlist3[11]:9===strlist4[11]:11

# **********

# strlist3[12]:%===strlist4[12]:12

# **********

# strlist3[13]:10===strlist4[13]:$

# **********

# strlist3[14]:11===strlist4[14]:14

# **********

# # strlist1中要被删除元素不在一起

# ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist11中要被删除元素在一起

# ['1', '2', '3', '@', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist2中要被删除元素不在一起

# ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# # strlist4中要被删除元素在一起

# ['1', '2', '3', '@', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']

# 删除一个元素后strlist3[4]与strlist11[4]就不一样了,strlist3[4]与strlist4[4]同样不一样

# 这就表明了什么,表明了列表不管使用del或者是remove删除元素,都会让后下一个元素位置前移,从而导致新列表数据出错。知道这个了,你们以后还会通过del或者是remove删除元素,直接获取一个新列表吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值