如下代码,先给一个集合赋值:
sets = set(range(1,11))
然后遍历集合并打印其值,其中会从集合中减去一个小集合,得到差集:
for i in sets: print(i) sets = sets - {2,3,4,5,6}
按我的理解,循环从 1 开始,打印 1,然后从集合中减去{2,3,4,5,6},剩下{1,7,8,9,10},所以下一个打印的值应该是 7,最后的结果应该是{1,7,8,9,10}。
但是第一次运行这个循环时,打印的是{1,2,3,4,5,6,7,8,9,10},第二次运行的时候才会打印出{1,7,8,9,10},这一点非常让我疑惑,和预期的完全不同,请问这里的错误出现在那里了?还请大家不吝赐教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.