Python 要使用for循环打印包含所有0个元素的多维列表吗
期望低于输出Python 要使用for循环打印包含所有0个元素的多维列表吗,python,list,loops,for-loop,Python,List,Loops,For Loop,期望低于输出 [[0,0,0,0,0][0,0,0,0,0][0,0,0,0][0,0,0,0,0]] 但是获取错误“索引器:列表索引超出范围” 这段代码有什么问题 r = 4 c = 5 list = [] temp_list =[] for r in range(r): for c in range(c): temp_list.append(0) list[c] += temp_list print(list) @PythonPitch-您想试试这一行吗:
[[0,0,0,0,0][0,0,0,0,0][0,0,0,0][0,0,0,0,0]]
但是获取错误“索引器:列表索引超出范围”这段代码有什么问题
r = 4
c = 5
list = []
temp_list =[]
for r in range(r):
for c in range(c):
temp_list.append(0)
list[c] += temp_list
print(list)
@PythonPitch-您想试试这一行吗: (正如前面文章中的建议,您的初始化和
c
column&tmp_列表是错误的!)
r=h=4
w=c=5
矩阵=[[0代表范围内的x(w)]代表范围内的y(h)]
打印(矩阵)
#如果您坚持尽可能多地重用您的原始变量,以下是“正确”的方法:
r=4
c=5
lst=[[0表示范围内(c)]表示范围内(r)]
打印(lst)
assert lst==Matrix#它是无声的,意味着它们是“相同”的内容。
您必须在for
循环的中定义临时列表
,而不是添加2列表
使用append
方法来实现预期结果
r = 4
c = 5
list = []
for r in range(r):
temp_list =[]
for x in range(c):
temp_list.append(0)
list.append(temp_list)
print(list)
list
是一个空列表,因此无论c
是什么,list[c]
都超出范围。将temp\u list=[]
的定义移动到外部循环内。您需要在每次迭代中重新初始化列表,而不是重复使用它(当您这样做时)。[[0]*c for uuu in range(r)]
应该做您想做的事情。我们还希望您能够在错误点之前跟踪有问题的值。在python中,list
是保留的关键字,您应该为变量使用另一个名称,如果您为循环变量使用不同的变量名称,这将是一件好事。如果我们有两个列表,如下所示,则可能会产生问题list1=[1,3,6,7]list2=[5,7,8,4]如何从列表1和列表2生成列表3。List3必须低于List3=[[1,3,6,7],[5,7,8,4]]在我的初始代码中,我在praveen的解决方案中尝试使用c而不是x。一个小错误,仅此而已。顺便说一下,您的解决方案可能会给出相同的结果。但我想更正我的代码。非常感谢你回答我的问题。非常感谢。