在 Python 中遍历列表列表中的列

2023-12-19

当我尝试跨行中的列进行迭代时,该列在嵌套循环内不会发生变化:

i_rows = 4
i_cols = 3
matrix = [[0 for c in xrange(i_cols)] for r in xrange(i_rows)]

for row, r in enumerate(matrix):
    for col, c in enumerate(r):
        r[c] = 1

print matrix

观察到的输出

[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]

预期产出

[[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]

我尝试过不同的表达方式,例如xrange() and len()我正在考虑切换到 numpy。让我有点惊讶的是,Python 中的二维数组并不像我对这门语言的第一印象那么直观。

目标是一个具有不同整数值的二维数组,稍后我需要对其进行解析以在屏幕上表示 2D 图形。

如何跨列表列表中的列进行迭代?


您只需将值分配给col, not c

for row, r in enumerate(matrix):
    for col, c in enumerate(r):
        r[col] = 1               # Note `col`, not `c`

因为返回的第一个值enumerate将是索引,第二个值将是实际值本身。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中遍历列表列表中的列 的相关文章

随机推荐