我的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)
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:3)
这是因为你在外部while
循环中有for
循环(遍历列表的元素。因此,当b变得大于{{1}时,内部while循环才存在},直到那时10
的值为x
。
根据您的意愿,我建议使用itertools.cycle()
。示例 -
A
答案 1 :(得分:2)
这里有一个双循环(while
内for
),你永远不会将b
重置为0.要获得预期的结果,你应该使用enumerate
:
for idx, x in enumerate(a):
print(a, x, idx)