我有一个脚本需要将一个矢量的值传输到另一个矢量。 代码如下:
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
我缺少什么?感谢帮助。
答案 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])
这创建两个列表。有两个变量(a
和c
)引用相同的变量。
如果你写:
>>> 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])