python厉遍列表删除元素list与list[:]的区别

Python与SEO 思享 168浏览

在我们关键词清洗的时候有时候会用到for循环然后删除掉其中不想要的元素,但是发现有时候厉遍list列表后结果和自己预估的不一样,网上说应该用list[:],这两者有什么区别呢?

区别

这两者区别其实很好理解,一个是list列表,如果列表使用remove方法删除了一个元素,那么这个list就是删除后的列表

而list[:]是list的副本,和list的关联不相关联,可以理解为使用list.remove()方法,不会影响list[:]

为了更好地理解,网上找了段代码

list = ['a', 'b', 'b', 'd']

for i in list:
    if i == 'b':
        list.remove(i)
print(list)

输出结果:

['a', 'b', 'd']

我们可以看到b仍然在列表中

这是因为,list[0]不处理,list[1]判断相等删除元素,这时候列表变成了['a', 'b', 'd'],此时循环list[2]值为d,list[1]已经使用过了自然就跳过了'b',

如果我们使用list[:]

list = ['a', 'b', 'b', 'd']

for i in list[:]:
    if i == 'b':
        list.remove(i)
print(list)

输入结果为

['a', 'd']

推荐阅读

pycharm怎么用国内镜像安装第三方库

1、在pycharm中打开Terminal,如下图。 2、以安装pymysql库为例,输入以下命令回车即可使用镜像安装。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql ......

win10系统安装软件错误”The installer has encountered an unexpected error…error code is 2503″

在Windows10系统中,错误“安装程序在安装此软件包时遇到意外错误。这可能表明包装有问题。错误代码是2503。安装python3.8.9时报告了。安装程序在安装此软件包时遇到了意外错误。这可能表明行李有问题。...

python报错requests.exceptions.ConnectionError

http连接数超过了最大限制。默认情况下,连接是保持活动的,因此服务器保持太多的连接以至于无法创建新的连接。请求速度太快。...