我希望下面的循环迭代六次,而不是用python3迭代三遍。我不了解这种行为。我知道列表在删除元素时会发生变化,但是我不知道这会如何影响for循环条件。为什么循环迭代少于六次?
a = [1, 2, 3, 4, 5, 6]
for elem in a:
del a[0]
print(a)
您将通过删除循环的每个迭代中的第一个元素del a[0]
,因此迭代器将分3步清空,因为迭代器将在下一次迭代中删除的元素之后移至该元素。您可以检查迭代器当前所在的元素,以及下面代码中的列表状态
a = [1, 2, 3, 4, 5, 6]
for elem in a:
print(elem)
del a[0]
print(a)
输出是
1
[2, 3, 4, 5, 6]
3
[3, 4, 5, 6]
5
[4, 5, 6]
您可以将其视为指向列表的第一个元素的指针,在每次迭代中删除第一个元素时,该指针跳2个步骤,而6个元素只能跳3次。
通常,修改要迭代的相同列表是一个坏主意。但是如果您确实要a[:]
删除列表,则可以迭代列表的副本。
a = [1, 2, 3, 4, 5, 6]
for elem in a[:]:
del a[0]
print(a)
输出是
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
[]
在Django模板中,我想创建一个遍历列表的for循环。在循环过程中,我还希望能够使用循环的迭代次数。 例如,如果有4个元素,那么: 应打印以下内容: 我该怎么做呢?
我一直在读一本面向初学者的书,“第一头HTML5编程”,其中有这样一段代码: 目前,如果我调用,它将返回下一次显示是在下午5:00。我将循环条件更改为“I<=movie.showtimes.length;”但它仍然只运行一次,并且只显示下午5点。循环只迭代一次,即使我重写了这个函数: 不是应该跑两次吗?
如果格式不正确,请原谅,这是我的第一篇帖子。我想看看是否以前发现过这个问题,但我找不到任何人有与我相同的问题。 我试图学习Java,但我无法弄清楚为什么我的for循环没有输出最后一次迭代。我正在完成codeabbey的练习,并相对轻松地完成了前两个。然而,在第三个和第四个问题上,我无法在最后一次迭代中输出我的for循环。 我开始在谷歌上搜索,并想将我的答案与其他人的答案进行比较。当我的代码与我找到
如果我试图在java中查找遍历foreach循环的次数,还有比这更好的方法吗? 我知道我可以只使用一个普通的for循环并拥有一个迭代器I,但我只是想知道是否有一种更优雅的方法来使用foreach.tanks in prevair:) 编辑:正如Jon Skeet指出的,上面的代码将新的按钮实例分配给迭代变量。哎呀。基于其他评论,我相信最实用的使用是一个正常循环。这是我要用的版本。谢谢大家的帮助!
我正在尝试使用For循环将一个随机整数(0-2)添加到一个变量中指定的次数。我遇到的问题是,循环不是每次循环时都使用一个新的随机数,所以,如果我输入9,我只能得到0、9,或者18。 我希望一个对象返回的键“a”和“b”具有不同的数值。