课程
/后端开发
/Python
/初识Python
for循环里name为啥不能in s?
2016-03-18
源自:初识Python 6-10
正在回答
先看第一个代码 报错:在迭代过程中改变了set的大小 在循环过程中 由if判断而更改了set的内容 这个是不允许的 所以系统会进行报错 应该在代码中创建一个 s.copy 然后在循环过程中对s.copy进行更改(#注:这个过程迭代出来的是s的name 判断后更改的是s.copy的内容) 最后再输出s.copy 就OK
qq_Autohypnosis_0
不知道你说的是不是,在DOS窗口中运行中这样的问题
这问题我也不知道怎么回事,但是下面可以验证for循环是没有错的,因为把print 单独拿出来输出的结果是跟答案一样的
嵌套反了,应该是从L取值,然后判断是否在s里:
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
if name in s:
s.remove(name)
else:
s.add(name)
print s
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序