首页 > 解决方案 > 卡在循环中递增的值

问题描述

最近,我在练习嵌套循环。我被数字和数组元素的迭代列表困住了。

问题 - 我有一个包含 3 个元素 [A,B,C] 的数组,我想将它们添加到 1-100 的数字中。

totalnum = 100
alpha = ['A', 'B', 'C']
length = len(alpha)
for i in range(1,totalnum):

    for j in range(length):

        result = i,alpha[j]
        break
    print(result)

我打算得到如下输出:

(1, 'A')
(2, 'B')
(3, 'C')
(4, 'A')
(5, 'B')
(6, 'C')

标签: pythonpython-3.x

解决方案


break来错地方了。话虽如此,这里有几个更好的方法来做到这一点:

totalnum = 100
alpha = ['A', 'B', 'C']
length = len(alpha)
for i in range(1, totalnum + 1):
    print(i, alpha[i % len(alpha)])

或者

from itertools import cycle
totalnum = 100
alpha = cycle(['A', 'B', 'C'])
length = len(alpha)
for i in range(1, totalnum + 1):
    print(i, next(alpha))

或(正如 Patrick Haugh 所指出的)

from itertools import cycle
for x in zip(range(1, 101), cycle('ABC')):
    print(x)

推荐阅读