首页 python正文

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

启明SEO python 2021-01-13 18:20:26 3669 0 python列表

今天在抓取数据的时候,遇到一个问题困扰了我好久,后来发现原来是基础不牢引发的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删除元素,直接获取一个新列表吗


评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

网站始终只收录一个首页,为什么

网站始终只收录一个首页,为什么

新做了两个网站,但是一直只是收录一个首页,快......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......