【发布时间】:2023-04-03 00:16:02
【问题描述】:
参考下面的简单代码sn-p。获取二维数组的输入并打印它的大小
def prefix_sum_Rish():
rows = int(input("type number of rows"))
columns = int(input("type number of columns"))
matrix = [[]]
#getting input from console
for i in range(rows):
temp = []
for j in range(columns):
x = int(input("number please"))
temp.append(x)
matrix.append(temp)
print("size of matrix" + str(len(matrix)))
prefix_sum_Rish()
输入给定,输出是
type number of rows3
type number of columns3
number please1
number please2
number please3
number please4
number please5
number please6
number please7
number please8
number please9
size of matrix4
Process finished with exit code 0
len(matrix) 返回 4 而它应该是 3。
如果我将行数设为 2,则 len(matrix) 返回 3。始终 len(matrix) 给出行数 + 1。
知道为什么会这样吗?
【问题讨论】:
-
用你自己的话来说,你认为
matrix
的长度应该是在你开始追加行之前?根据 Python,实际长度是多少是?你明白为什么 Python 会给出并回答它吗?此外,这些是 not 数组(我们称它们为 lists)并且它们是 not “2d”,只是因为您嵌套了它们。如果您想要实际的 rectangular 存储(人们通常所说的二维数组,其中所有行都被强制为相同的长度,并且实现不必单独跟踪每一行),那么您需要第三方库。 -
井 1 + 3 = 4。
-
详细说明凯利的评论:您的
matrix = [[]]
已经包含一个开头的元素:一个空列表[]
。然后在循环中添加三个列表。 1 + 3 = 4。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:2D 数组 (PYTHON) 的 len() 未正确出现 - Python技术站