python - 如何填充二维数组?

标签 python list python-3.x

我有以下代码(几乎)填充Python中的列表列表(我将其称为二维数组)。

我希望它用数字 0 - 20 填充数组,而不是从 0-6 上升并重复 3 次。请参阅下面的代码:

#matrix=[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21]
#print(matrix[1][2])

rows=3 
columns=7 

for i in range(rows):
  for j in range(columns):
    matrix=[j]
    i=i+1    
    print(matrix,end="")

错误的输出是:

[0][1][2][3][4][5][6][0][1][2][3][4][5][6][0][1][2][3][4][5][6]   

我希望输出是:

[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21]

最佳答案

还有更奇特的方法,但这是最简单的:

>>> rows = 3
>>> columns = 7
>>> n = 1
>>> matrix = []
>>> for _ in range(rows):
...     sub = []
...     for _ in range(columns):
...         sub.append(n)
...         n += 1
...     matrix.append(sub)
...
>>> matrix
[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21]]

为了更好地衡量,一种奇特的方式:

>>> import itertools
>>> counter = itertools.count(1)
>>> rows = 3
>>> columns = 7
>>> matrix = [[n for n, _ in zip(counter, range(columns))] for _ in range(rows)]
>>> matrix
[[1, 2, 3, 4, 5, 6, 7], [9, 10, 11, 12, 13, 14, 15], [17, 18, 19, 20, 21, 22, 23]]
>>>

关于python - 如何填充二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44443199/

相关文章:

python - 将 OrderedDict 解析为 Python 列表

python - 如何从 Python 中的文件中提取 float ?

python - 循环字典列表并合并具有相同ID的字典

javascript - python markdown哪个版本有mark方法

python - Pandas TimeSeries 重采样产生 NaN

python - 如何从列表中检索单词的位置?

Java - 固定大小列表和指定初始容量的列表之间的差异

Django __init__() 需要 1 个位置参数,但给出了 2 个

python - 接受一个列表并返回一个仅包含原始元素的列表的函数?

python - 满足条件后循环停止而不是继续下一个输入