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

时间:2017-10-30 17:44:21

标签: python-3.x

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

就像我正在使用值(3,3)

colNum为3,rowNum为3。

2 个答案:

答案 0 :(得分:1)

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]]

这里的列表理解语句的语法是

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

0是你的外表。

现在是另一个示例,其中输出表达式正在添加行索引列索引

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,6]]

答案 1 :(得分:1)

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中非常有用,因为它们减少了上面编写的代码。有关列表推导的更多信息,请访问link