Skip to main content
 首页 » 编程设计

python之在 Python 中创建二维网格

2025年05月04日11luoye11

我正在尝试用 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() .