首页 > 解决方案 > 在“for”循环中列出附加问题

问题描述

我试图解决一个包含与此类似的代码部分的问题。但是每当我尝试执行脚本时,它就会变成一个无限循环。这个问题的原因是什么,我该如何解决?

a=[1,2]
for i in a:
  a.append(i)
  print("Infinite")

我在我的计算机和 Google Colab 上本地尝试了这个程序,但在这两种情况下。但是,它不是将值 1、2 附加到 list a,而是以不同的方式工作。

a我通过分配z=a和更改for循环的结构创建了一个副本,如下所示:

z=a
for i in z:
   a.append(i)

但问题还是一样:

在此处输入图像描述

标签: pythonfor-looparraylistappendinfinite-loop

解决方案


正在发生的事情是,对于循环的每次迭代,都会将一个新值添加到 list 中a。这意味着每次迭代后列表中总会有一个新元素,这意味着循环永远不会结束。

至于您的 副本a,这并不能完全创建a. z=a只是引用变量a,所以修改z也会修改a


推荐阅读