关于学习Python集合的遍历过程中遇到的困惑

  我想用while循环遍历一个集合,我设计的程序如下:

f1d32f96211d4dd89280f0cee5f0554a.jpg

  我的预想是:

  当new_set的集合元素没有达到与my_set相同,从my_set中取元素添加到new_set中,同时输出该元素,直到new_set的元素与my_set一样了停止,以此完成遍历。

  结果是:

657805de988042b2bd9099d777ce834e.jpg

  只取出来3个,呜呜呜,为什么会这样?

  于是我重新修改代码:

0879e8f4d8de4ff0b4d39b7d7cf842f5.jpg

 结果:

caf6a7107f744e4e99e720257b2bc7e6.jpg

多了一个而已,脑壳都要想破了!😭

后来我才知道:

507abdaab0b945b18d409e75bf9fc961.jpg

原来在new_set添加元素过程中,my_set也会减少,别不是从my_set中复制粘贴过来,而是直接拿走了。看样子我想法是好的,只不过忘记了这个知识点😭

  因此可以发现上图中的:

bda3983fddbf477abd65ee6aa7b678bd.jpg

223619bfd36f40f98e07ddf6c051b1e8.jpg

 为什么只输出3个了,因为:

d5b2a40239684309940cb6a4730aefe3.jpg

 两集合元素个数相同了。

至于:

08be57a076044e25836795b6b047ea7a.jpg

5727285138b242b18d53a11c4b309169.jpg

那是因为两集合元素相同是,还可以循环一次,所以也就有了:

26d91f12c76f42c598af53288fc15289.jpg

于是,我又重新设计了一个while循环遍历集合my_set的程序:

83f605d2090e42e6bea50a034ed4c079.jpg

 结果:

15c084d946e1463ea660c8c1fbc6d786.jpg

  耶✌!成功遍历my_set集合的元素!

  不过,可以发现my_set变空集了,它的元素全部转移到了new_set了。

  来对比一下for循环的遍历:

88e5217915dc43d78a7205a0e859d91e.jpg

7da237f5aa114338ac84f2d9b7988500.jpg

 可以发现for循环后并没有对my_set集合产生影响。

综上我们可以发现,集合遍历for循环更好用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuga...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值