索引python中的向量列表

时间:2018-11-26 21:07:06

标签: python arrays list vector indexing

我有一个循环在创建向量v_1, v_2, ... , v_n.,到目前为止,我对它们进行“索引”的方法是创建一个数组list_of_vectors=(v_1,v_2,...,v_n),每当我要调用它们之一时,我都会从中检索它此列表。

是否有更聪明的方法来做到这一点?例如,在Mathematica中,您可以进行作业v[1]=something1v[2]=something2,也可以将其称为v[1]v[2]。我想这不能完全在python中完成,但是有没有比这更聪明/更有效的索引向量的方法了?

一般来说,我所要做的只是列出事物的列表(数组/向量),但是在python中这也许很愚蠢/浪费。

2 个答案:

答案 0 :(得分:1)

在Python中有多种方法可以做到这一点。顺便说一句,Python实际上没有内置的“数组”,而是有列表,array(标准模块)和numpy(第三方但极为常见的模块)具有它们的列表。自己的数组。

第一种,最直接的方法是使用列表。如果按照您说的顺序获得向量,请使用

创建列表
v = [None]

现在已定义v[0],但您显然将永远不会使用它。然后,当您获得下一个向量v_1时,执行

v.append(v_1)

v[1]的值现在是您刚刚附加的向量。下一个向量将是v[2],依此类推。

如果不合适,例如向量以更随机的顺序出现,则可以使用字典。使用

创建字典
v = dict()

或者也许

v = {}

然后,当您获得向量时,说出您要与数字v_2关联的2,执行

v[2] = v_2

然后,您以后可以随时引用v[2]。请注意,v[0]v[1]尚未定义。这种方法比列表使用更多的内存,但更灵活。

另一种方法是定义一个适当大小的numpy数组,然后分配给它。这也允许随机排序,但是您必须事先知道将要使用的最大索引。另两种方法将根据需要调整对象大小。

答案 1 :(得分:1)

一种方法是使用像这样的字典进行创建:

b={}
b[0]=[1,2,3]
b[1]=[2,3,4]
print(b[1])
相关问题