python - 在 Python 中创建二维网格

标签 python list multidimensional-array

我正在尝试用 Python 创建一个二维数组或列表或其他东西。我是这门语言的新手,所以我不知道所有的来龙去脉以及不同的类型或库。

基本上,我有一个方形列表 g,我想转置它(将行变成列,将列变成行)。稍后我将遍历这个列表列表和列表的转置列表。在转置列表中,列的顺序无关紧要。这是“Python方式”吗?有没有更快的方法来做到这一点?

我喜欢使用列表,因为我对我所知道的语言中与数组非常相似的语法感到满意,但如果 Python 中有更好的方法,我想学习它。

def makeLRGrid(g):
    n = []
    for i in range(len(g)):
        temp = []
        for j in range(len(g)):
            temp.append(g[j][i])
        n.append(temp)
    return n

感谢您提供的任何帮助!

编辑:很抱歉造成混淆,显然我的意思是转置,而不是反转!

最佳答案

对于列表的“方形”列表,此实现与您的实现相同:

def makeLRGrid(g):
    return [row[:] for row in g]

可以通过使用 [:] 对整个列表进行切片来复制列表,您可以使用列表推导式对每一行执行此操作。

编辑:您似乎实际上是在瞄准transposing列表列表。这可以通过 zip() 来完成:

def transpose(g):
    return zip(*g)

或者,如果你真的需要一个列表列表

def transpose(g):
    return map(list, zip(*g))

另见 documentation of zip() .

关于python - 在 Python 中创建二维网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052920/

相关文章:

python - py2exe 创建的可执行文件不工作

python - 如何设置和保留 Python 2 字符串中字符的属性?

python - 我的重新排列数组使得 arr[i] = i 的代码有什么问题?

java - T[] toArray(T[] a) 实现

python - 关于postgresql绑定(bind)变量的问题

Python GUI 创建

Python:使用另一个列表顺序对列表进行排序,具有不同的长度,并且没有 'sorted'

algorithm - 高效查询持有多维数据的 B+ 树

php - array_filter 中的回调是否可以接收参数?

c - 如何在 C 中正确设置、访问和释放多维数组?