gpt4 book ai didi

python - 在 python 中创建一个非均匀的二维向量

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:41 25 4
gpt4 key购买 nike

我的目标是在 python 中创建下表(命名元组的二维向量):

     (0,0,1) | (2,0,7) | (1,0,1)
| (3,0,1) | (4,0,1)
| (5,0,1) |

可以看出,表 T[0] 的大小为 1,T[1] 的大小为 3,T[2] 大小 2。到目前为止,我看到的所有方法都与使用 List Comprehension 相关,但这会导致固定的 MxN 矩阵。我很想知道我是否可以使用 python 首先预分配第一维的大小(在我的例子中是 3),然后继续向每个 T[i] 添加元素。

在用 C++ 编写时,我会声明一个大小为 3 的向量 T,并根据需要以动态方式继续将元素 push_back 到每个维度。但是我找不到一种优雅的方式来写这是 python。

我是 python 的新手,我的第一次尝试是执行以下操作(不使用命名元组):

 T=[]
arr1=[0,1,2]
arr2=[3,4]
arr3=[6,6,7,8]

T.append(arr1)
T.append(arr2)
T.append(arr3)

这导致了以下结果:

  >>T
[[0, 1, 2], [3, 4], [5, 6, 7, 8]]

但是,如果我清除 arr1,它也应该从 T 中删除。有没有更好的方法来解决这个问题?

最佳答案

当您将 arr1 附加到 T 时,您并不是在制作 arr1 列表的新副本。在将列表附加到 T 之前,您需要复制该列表,以便在修改 arr1 时,您添加到 T 的列表未修改。

为此,请使用 T.append(list(arr1))。这将在将 arr1 添加到 T 之前创建一个新副本。

关于python - 在 python 中创建一个非均匀的二维向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450781/

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