雖然測試代碼一些錯誤出現 - 數學運算後,列表「縮小」到自己的最後一個項目Python列表轉換成整數
在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]
我剛無法弄清楚我做錯了什麼,所以任何人都可以請幫忙?
這不是你的問題,但是你的'__init__'有一個可變的默認參數,這會讓你稍後頭疼。 – geoffspear
那麼'a'正在變成'3',因爲你正在給它賦值。 – Marcin
'爲自我.__矢量,矢量.__矢量在' - 什麼? – user2357112