在测试代码时出现了一些错误 - 在数学运算之后,列表“缩小”到自身的最后一项
在 Python 3.3 解释器中它工作正常......
a = [a + b for a, b in zip(a, b)]
我正在使用此代码添加一些列表项
a = [1, 2, 3]
b = [2, 3, 2]
这工作正常并返回
>>> a
[3, 5, 5]
>>> b
[2, 3, 2]
然后我写了一个类来处理更多列表:
class Vector:
def __init__(self, name = '', vector = []):
self.__name = name
self.__vector = vector
def add_row_to_scalar_multiple(self, vector):
self.__vector = [self.__vector + vector.__vector for self.__vector, vector.__vector in zip(self.__vector, vector.__vector)]
def __str__(self):
vec = ('{0} = {1}'.format(self.__name, self.__vector))
formatted_vec = vec.replace(',', '')
return formatted_vec
当使用与上面相同的列表运行代码时,一个列表被缩减为一个整数
vec_a = Vector('a', [1, 2, 3])
vec_b = Vector('b', [2, 3, 2])
a = [1, 2, 3]
b = [2, 3, 2]
vec_b.add_row_to_scalar_multiple(vec_a)
a = 3
b = [3, 5, 5]
我只是无法弄清楚我做错了什么,所以任何人都可以帮忙吗?