Python:如何按列遍历列表列表,就像它是一个常规的2D数组(matrix)?

2024-06-12 05:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份清单,清单如下: list=[[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]]。在

我想在一个函数中使用这个列表,该函数将我的list分成9组,每组四个值,这些值被转储到listsdict中。如果len(list)=n,函数应该创建[sqrt(n)-1]*[sqrt(n)-1]片。在本例中,给定len(list)=16slices=[4-1]*[4-1]=9。在

这是函数:

def dictionarize1(array):
    dict1 = {}
    count = 0
    for x in range(len(array[0]) - 1) :
        for y in range(len(array[0]) - 1):
            dict1[count] = [array[x][y], array[x][y+1], array[x+1][y], array[x + 1][y+1]]
            count = count + 1
    return dict1 


dictionarize1(list) #Calling the function

我认为我的list是一个2D数组,在本例中是4x4矩阵,必须像矩阵一样遍历它:row是固定的,column是递增的:

^{pr2}$

因此,我的切片必须是[0,1,4,5][1,2,5,6][2,3,6,7][4,5,8,9]等,而不将矩阵包装起来。

最终结果应该是dict={'0':[0,1,4,5],'1':[1,2,5,6],'2':[2,3,6,7],'3':[4,5,8,9],'4':[5,6,9,10],'5':[6,7,10,11],'6':[8,9,12,13],'7':[9,10,13,14],'8':[10,11,14,15]}。在

我的问题:这是我的for循环按列遍历列表的正确方法吗(这意味着:行是固定的,列是递增的)?我无法判断是否我打印了我的list我只得到一个常规列表,因此它使我困惑。谢谢!在


Tags: 函数in列表forlencountrange矩阵