Skip to main content
 首页 » 编程设计

python之如何使用 Python 将二维数组中的列分配给某个重复范围

2025年05月04日21cmt

我想将二维数组的列值分配给重复范围。
例如,范围将从 1 到 3:

[1, 0, 0] 
[2, 0, 0] 
[3, 0, 0] 
[1, 0, 0] 
[2, 0, 0] 
[3, 0, 0] 

我有代码:

width, height = 3, 6  
array2d = [[0 for x in range(width)] for y in range(height)] 
 
repRange = list(range(1,4)) #it is [1, 2, 3] 
 
j = 0 
for i in range(height):     
    array2d[i][0] = repRange[j] 
 
    if j >= len(repRange)-1: 
        j = 0 
    j += 1 
 
for row in array2d: 
    print(row) 

输出:

[1, 0, 0] 
[2, 0, 0] 
[3, 0, 0] 
[2, 0, 0] 
[3, 0, 0] 
[2, 0, 0] 

它失败了。开始很好,但在第二次重复时失败了。


逻辑有什么问题?如果有更简单的方法,希望大家分享。

请您参考如下方法:

看看标准库模块itertools .函数 cycle 做你想做的事:

from itertools import cycle 
width, height = 3, 6  
array2d = [[0 for x in range(width)] for y in range(height)] 
for l, i in zip(array2d, cycle([1,2,3])): 
    l[0] = i