首页 python正文

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

启明SEO python 2021-01-13 18:20:26 2946 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指纹修改方法?

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

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......