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

麻烦大神看看为什么输出是不对

s = set(['Adam', 'Lisa', 'Paul'])

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for i in L:

    s.add(i)

    if len(s) == 3:

        s.remove(i)

        continue

print s


正在回答

4 回答

你这第一次循环的时候,就删除掉了Adam,s的长度就不可能会是3了,第二次循环的时候就删除不掉Lisa,第三次循环因为加入了Bart,s的长度又变回了3,因此,执行if代码块,又给把Bart给删了,第四次循环因为s的长度又变回了2,不执行if代码块。你这输出来的结果恐怕只有Lisa和Paul吧,不知道你写这代码什么意思,还有continue用在这里毫无意义呀,continue的意思就是跳过后面的代码块执行下一次的循环,你放在循环的最后位置和没放作用一样。

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

我前面弄懂啦 谢谢各位 。我点不了采纳 不知道为啥不跳转

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

你这个代码就只有循环到Adam和Bart的时候len(s)才等于3.所以都不会网if里面运行

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

s = set(['Adam', 'Lisa', 'Paul'])

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for i in L:

    s.add(i)#如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了

print (s)



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

举报

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

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

进入课程

麻烦大神看看为什么输出是不对

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