我有一个循环在创建向量v_1, v_2, ... , v_n.
,到目前为止,我对它们进行“索引”的方法是创建一个数组list_of_vectors=(v_1,v_2,...,v_n)
,每当我要调用它们之一时,我都会从中检索它此列表。
是否有更聪明的方法来做到这一点?例如,在Mathematica中,您可以进行作业v[1]=something1
,v[2]=something2
,也可以将其称为v[1]
,v[2]
。我想这不能完全在python中完成,但是有没有比这更聪明/更有效的索引向量的方法了?
一般来说,我所要做的只是列出事物的列表(数组/向量),但是在python中这也许很愚蠢/浪费。
答案 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])