为了账号安全,请及时绑定邮箱和手机立即绑定

for报错,求解答

for x in L:    for y in s:        if x == y:            s.remove(y)    print s 问一下   我这个为什么报错呢

正在回答

3 回答

改成这个就好了:

for x in L:    
    for y in list(s):        
        if x == y:
            s.remove(y)    
print s

0 回复 有任何疑惑可以回复我~

第一步遍历的时候先取出了 adam , 然后进入内层循环遍历完成,此时删除了adam。然后再进入第二次外部遍历迭代的时候发现完成的list数据长度变化,抛出错误。    新手常见问题

0 回复 有任何疑惑可以回复我~
#1

00009

“Set changed size during iteration” 报错确实是set长度发生改变, 但是在循环过程中,set长度不能发生改变吗? set的实时值和循环没什么关系嘛。 网上搜了一下,很多参考答案: https://blog.csdn.net/zhihaoma/article/details/51265168 参考资料:https://www.python.org/dev/peps/pep-0234/ 大概是说字典在遍历时不能进行修改,建议转成列表或集合处理。 set应该也是一样的
2018-03-27 回复 有任何疑惑可以回复我~

能把代码缩进弄好一点么?如果没把代码缩进问题弄好,我就不道你想要表达什么意思。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758620    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

for报错,求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信