gpt4 book ai didi

python - 矩阵操作 - 为什么正常循环会产生不同的结果?

转载 作者:行者123 更新时间:2023-12-02 02:16:18 24 4
gpt4 key购买 nike

我的问题与this question有关。我试图对 @shuttle87 提供的列表理解进行建模在他/她对 the question 的回答中到常规的老式循环。这是我的代码片段的样子:

matrix = [[2,0,2],[0,2,0],[2,0,2]]
sqd = []
for i in matrix:
for e in i:
sqd.append(e*e)
print(sqd)

我的问题是我的代码返回一个列表,即 [4, 0, 4, 0, 4, 0, 4, 0, 4] 而不是矩阵,即 [ [4,0,4],[0,4,0],[4,0,4]]。我可能做错了什么?

免责声明:我知道有一些很棒的 python 库可以做到这一点,例如 numpy。我喜欢通过直觉来理解事物,因此这个问题......所以请原谅我的天真。

最佳答案

您有一个要向其附加标量值的列表 sqd,因此它始终只是一个一维列表。如果您想要列表的列表(即二维矩阵),则需要将列表附加到 sqd,而不是标量值:

matrix = [[2,0,2],[0,2,0],[2,0,2]]
sqd = []
for i in matrix:
row = [] # create a new list for each row
for e in i:
row.append(e*e) # append scalar to the row list
sqd.append(row) # append row to matrix list
print(sqd)

关于python - 矩阵操作 - 为什么正常循环会产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67116372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com