gpt4 book ai didi

python - 为什么程序中的列表会给出意外的输出?

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:39 25 4
gpt4 key购买 nike

我的 python 列表有问题。

我正在打印列表(有效),一个显示行号的数字(有效)和列表中每次打印列表时都应该更改的项目(无效?)

a = ["A", "B", "C", "D", "E"]
b = 0

for x in a:
while b <= 10:

print(a, x, b)
b += 1

我当前的程序输出是

['A', 'B', 'C', 'D', 'E'] A 0
['A', 'B', 'C', 'D', 'E'] A 1
['A', 'B', 'C', 'D', 'E'] A 2
['A', 'B', 'C', 'D', 'E'] A 3

等等

我想要的输出

['A', 'B', 'C', 'D', 'E'] A 0
['A', 'B', 'C', 'D', 'E'] B 1
['A', 'B', 'C', 'D', 'E'] C 2
['A', 'B', 'C', 'D', 'E'] D 3

等等虽然,当我尝试不同的程序时它运行良好?

list = ["a", "b", "c"]

for a in list:
print(a)

为什么会发生这种情况,我该如何解决?

最佳答案

那是因为你在外层 for 循环中有 while 循环(迭代列表的元素。所以内层 while 循环只在 b 变成大于10,到那时x的值为A

对于你想要的,我建议使用 itertools.cycle() .示例 -

>>> a = ["A", "B", "C", "D", "E"]
>>>
>>> b = 0
>>> import itertools
>>> acycle = itertools.cycle(a)
>>> for i in range(11):
... print(a,next(acycle),i)
...
['A', 'B', 'C', 'D', 'E'] A 0
['A', 'B', 'C', 'D', 'E'] B 1
['A', 'B', 'C', 'D', 'E'] C 2
['A', 'B', 'C', 'D', 'E'] D 3
['A', 'B', 'C', 'D', 'E'] E 4
['A', 'B', 'C', 'D', 'E'] A 5
['A', 'B', 'C', 'D', 'E'] B 6
['A', 'B', 'C', 'D', 'E'] C 7
['A', 'B', 'C', 'D', 'E'] D 8
['A', 'B', 'C', 'D', 'E'] E 9
['A', 'B', 'C', 'D', 'E'] A 10

关于python - 为什么程序中的列表会给出意外的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com