在python中将一个向量变量保存到另一个向量变量

时间:2014-08-21 20:56:22

标签: python

我有一个脚本需要将一个矢量的值传输到另一个矢量。 代码如下:

b  = [1,2,3]

for i ranging from (0,2): 
   a[i] = b[i] #(transfer all three elements of b to a)   

执行此操作会出错

- IndexError: list assignment index out of range

我缺少什么?感谢帮助。

3 个答案:

答案 0 :(得分:2)

a = b[:]

应该足够了

答案 1 :(得分:1)

如果您通过索引引用list,则list必须是正确的大小。即。 a a = list(b) 没有3个元素。我只是用列表构造函数创建一个新列表,或者更容易做到这一点

{{1}}

答案 2 :(得分:0)

  

我有一个脚本需要将一个矢量的值传输到另一个

我认为变量与其内容之间存在一些混淆:

>>> a = [10,20]
>>> b = [1,2,3]
>>> c = a

>>> a,b,c
([10, 20], [1, 2, 3], [10, 20])

这创建两个列表。有两个变量(ac引用相同的变量。

如果你写:

>>> a = [10,20]
>>> b = [1,2,3]
>>> c = a
>>> a = b[:]

>>> a,b,c
([1, 2, 3], [1, 2, 3], [10, 20])

您实际创建了第三个列表。将其绑定到变量a。但c仍然保留对原始列表的引用。

如果您想真正改变原始列表,请改为写下:

>>> a = [10,20]
>>> b = [1,2,3]
>>> c = a
>>> a[:] = b[:]  # "replace every item of the first list 
                 #  by every item of the second list"

>>> a,b,c
([1, 2, 3], [1, 2, 3], [1, 2, 3])