无法理解 python 代码
Cannot understand a python code
Q.Write 一个以 2 位数字 X,Y 作为输入并生成 2-
维数组。第i行第j列的元素值
数组应该是 i*j.
一个。
input_str = raw_input()
dimensions=[int(x) for x in input_str.split(',')]
rowNum=dimensions[0]
colNum=dimensions[1]
multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
for row in range(rowNum):
for col in range(colNum):
multilist[row][col]= row*col
print multilist
我想知道multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
中的0是什么意思
在列表理解中,首先调用它,参数是将在当前迭代位置插入的值。
它可以是任何东西,所以这里是零。
这从字面上翻译成标准:
multilist = []
for i in range(rowNum):
row = []
for j in range(colNum):
row.append(0)
multilist.append(row)
当您从下到上阅读此代码时,您对列表的理解也是如此。
外部列表的第一个 "argument" 是:
[0 for j in range(colNum)]
而第一个"argument",因此内部列表的一个项目是0。
因此,这个内部列表在外部列表中重复了 rowNum 次:
[ [inner_list] for i in range(colNum)]
有一个稍微好一点的方法:
multilist = [colNum*[0] for x in xrange(rowNum)]
Q.Write 一个以 2 位数字 X,Y 作为输入并生成 2- 维数组。第i行第j列的元素值 数组应该是 i*j.
一个。
input_str = raw_input()
dimensions=[int(x) for x in input_str.split(',')]
rowNum=dimensions[0]
colNum=dimensions[1]
multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
for row in range(rowNum):
for col in range(colNum):
multilist[row][col]= row*col
print multilist
我想知道multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
在列表理解中,首先调用它,参数是将在当前迭代位置插入的值。 它可以是任何东西,所以这里是零。
这从字面上翻译成标准:
multilist = []
for i in range(rowNum):
row = []
for j in range(colNum):
row.append(0)
multilist.append(row)
当您从下到上阅读此代码时,您对列表的理解也是如此。
外部列表的第一个 "argument" 是:
[0 for j in range(colNum)]
而第一个"argument",因此内部列表的一个项目是0。
因此,这个内部列表在外部列表中重复了 rowNum 次:
[ [inner_list] for i in range(colNum)]
有一个稍微好一点的方法:
multilist = [colNum*[0] for x in xrange(rowNum)]