多重列表 = [[0 for col in range(colNum)]for row in range(rowNum)



有人可以详细说明它是如何运作的吗?

就像我在取一个价值(3,3)

colNum是 3,rowNum是 3。

multilist = [[0 for col in range(colNum)] for row in range(rowNum)]

以指定数量的列和行打印"0"。

例如:如果 colNum 是 4,rowNum 是 4...,那么你会注意到一个像下面的多重列表。

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

, 0, 0, 0]]

在列表理解语句中,语法是

[[output_expression for _ in (set of columns to iterate)] for _ in (set of rows to iterate)]

现在再举一个例子,其中output_expression正在添加行索引列索引

multilist = [[col+row for col in range(4)] for row in range(4)]

输出为

[[0

, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 5, 6]]
def print_multilist(rowNum, colNum):
    multilist = [[0 for col in range(colNum)]for row in range(rowNum)]
    print(multilist)
print_multilist(3,3)#prints [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print_multilist(2,2) #prints [[0, 0], [0, 0]]

上行是列表理解。它等效于如下,不使用列表推导

def print_multilist(rowNum, colNum):
    multilist = []
    for row in range(rowNum):
        multilist.append([])
        for col in range(colNum):
            multilist[row].append(0)
    print(multilist)
print_multilist(3,3) #prints [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print_multilist(2,2) #prints [[0, 0], [0, 0]]

列表推导在 python 中非常有用,因为它们减少了像上面这样编写的代码。有关列表推导的更多信息,请访问链接

最新更新