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

Python与SEO 思享 311浏览

在我们关键词清洗的时候有时候会用到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']

推荐阅读

Python实现聚合问答采集文章

最近在一个社区得到了一个用python聚合问答的工具,但是因为已经打包成程序了,所以无法研究,于是在网上找了一个网友分享的源代码,转载于此,供志愿者学习和后期扩展。这个工具可以通过头条搜索、百度下拉结果、搜狗下拉、百度知道搜索、新浪爱问、搜狗问问,将......

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时报告了。安装程序在安装此软件包时遇到了意外错误。这可能表明行李有问题。...