马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
想问一下,为什么这两个运行的结果一个是int而另一个是listmatrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
for i in range(len(matrix)):
print(matrix[i][i],end=" ")
type((matrix[i][i]))
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
diag=[matrix[i][i]for i in range(len(matrix))]
print(diag)
type(diag)
[b]这两段代码的运行结果不同,是因为它们的目的和实现方式不同。
第一段代码, type((matrix[i][i])) 这部分主要是打印出矩阵对角线的每一个元素。在 for 循环中,每次 i 变化时, matrix[i][i] 就会获取到矩阵对角线上的一个元素,并打印出来。这个元素的类型是 int ,因为在你的例子中,矩阵的元素都是整数。所以 type((matrix[i][i])) 的结果是 <class 'int'> 。
第二段代码, diag=[matrix[i][i]for i in range(len(matrix))] 则是创建一个新的列表 diag ,这个列表包含了矩阵对角线上的所有元素。在这个列表推导式中, for i in range(len(matrix)) 是循环变量, matrix[i][i] 则是在每次循环中,从矩阵对角线上获取元素。所以 diag 是一个包含了多个元素的列表,这些元素都是矩阵对角线上的数。因此, type(diag) 的结果是 <class 'list'> 。
总结一下,第一段代码中, matrix[i][i] 获取到的是单个的矩阵对角线元素,它的类型是 int ;而第二段代码中, diag 是一个包含了多个矩阵对角线元素的列表,它的类型是 list 。[/b]
|