从品牌网站建设到网络营销策划,从策略到执行的一站式服务
平时开发 Python 代码过程中,经常会遇到这个报错:
成都创新互联公司长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为长安企业提供专业的成都网站制作、成都做网站,长安网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
ValueError: list.remove(x): x not in list
错误提示信息也很明确,就是移除的元素不在列表之中。
比如:
>>> lst = [1, 2, 3]
>>> lst.remove(4)
Traceback (most recent call last):
File "", line 1, in
ValueError: list.remove(x): x not in list
但还有一种情况也会引发这个错误,就是在循环中使用 remove
方法。
举一个例子:
>>> lst = [1, 2, 3]
>>> for i in lst:
... print(i, lst)
... lst.remove(i)
...
1 [1, 2, 3]
3 [2, 3]
>>>
>>> lst
[2]
输出结果和我们预期并不一致。
如果是双层循环呢?会更复杂一些。再来看一个例子:
>>> lst = [1, 2, 3]
>>> for i in lst:
... for a in lst:
... print(i, a, lst)
... lst.remove(i)
...
1 1 [1, 2, 3]
1 3 [2, 3]
Traceback (most recent call last):
File "", line 4, in
ValueError: list.remove(x): x not in list
这样的话输出就更混乱了,而且还报错了。
那怎么解决呢?办法也很简单,就是在每次循环的时候使用列表的拷贝。
看一下修正之后的代码:
>>> lst = [1, 2, 3]
>>> for i in lst[:]:
... for i in lst[:]:
... print(i, lst)
... lst.remove(i)
...
1 [1, 2, 3]
2 [2, 3]
3 [3]
这样的话就没问题了。
以上就是本文的全部内容,如果觉得还不错的话,环境点赞,转发和关注,感谢支持。
推荐阅读:
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图