, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 5, 6]]
有人可以详细说明它是如何运作的吗?
就像我在取一个价值(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
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 中非常有用,因为它们减少了像上面这样编写的代码。有关列表推导的更多信息,请访问链接