从这个问题开始。您能否解释一下这个机制是如何工作的:
for i in range(n): # тут я понимаю что i принимает значение n
matrix.append([]) # с этим все понятно, добавляем пустой список как по условию.
for j in range(m): # вот затык, поясните пожалуйста какое волшебство тут?
matrix[i].append(value)
提前致谢。
这里的微妙之处实际上与所讨论的有点不同。或者更确切地说,有几个。我将在下面用评论和文字进行解释:
说明:
range具有一个参数,枚举时会生成从 0 到指定参数 - 1 的数字j;在这种情况下,他们通常指定而不是变量_或使用其他生成列表的方法matrix[i]so 时,奇迹般地发现这与matrix上面通过 添加的元素相同matrix.append([]),这不是最好的方法,最好明确地执行此类操作,而不是依赖于此类匹配嗯,也就是说,最好这样做:
如果
value类型是不可变的,那么你可以这样做:或者,使用“列表缩写”的其他方法:
在我看来,后面的方法如果你看一下应该会更清楚。
PS我写了一些关于不变性的东西不太正确,答案需要重做:/