python使用for循环报错list.remove(x): x not in list

Python与SEO 思享 429浏览

处理关键词有时候我们会用到python的for循环,代码小白的我碰到了一个问题,报错list.remove(x): x not in list。从列表中取出来的元素,删除竟然不在列表中?这到底是怎么回事呢?

首先来看一下我的代码:

for k in keywords:
    for key in keywords:
        if k in key and k != key:
            keywords.remove(k)

根据某度解惑,使用备份的列表循环,这样可以避免remove方法操作列表带来的问题《python厉遍列表删除元素list与list[:]的区别

于是我改成了

for k in keywords[:]:
    for key in keywords[:]:
        if k in key and k != key:
            keywords.remove(k)

但是问题依旧,最后,又重新理了一遍,发现是第二次循环没结束的原因。打个比方

list = ['百度', '百度SEO', '百度排名', '百度优化']

第一层循环当取值“百度”时,第二层取值“百度SEO”时,列表就会删除“百度”,但是第二层循环没有结束,还会继续取值“百度排名”,这时候又一次使用remove方法时,百度已经不在列表里了,所以报错。

解决办法也很简单,在remove方法使用后面后面加个break跳出第二层循环即可

推荐阅读

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