Aşağıdaki kod geçerli durumunda çalışmaz. Ancak, sum_vec.extend(vec1[i] + vec2[i])
'u sum_vec.append(vec1[i] + vec2[i])
olarak değiştirirseniz, gayet iyi çalışır. Ekleme ve genişletme arasındaki temel farkı anlıyorum, ancak uzamı kullanırsam kodun neden çalışmadığını anlamıyorum.Python: Ekleme ve genişletme arasındaki farkı anlama
def addVectors(v1, v2):
vec1 = list(v1)
vec2 = list(v2)
sum_vec = []
vec1_len = len(vec1)
vec2_len = len(vec2)
min_len = min(vec1_len, vec2_len)
# adding up elements pointwise
if vec1_len == 0 and vec2_len == 0:
return sum_vec
else:
for i in xrange(0, min_len):
sum_vec.extend(vec1[i] + vec2[i])
# in case one vector is longer than the other
if vec1_len != vec2_len:
if vec1_len > vec2_len:
sum_vec.extend(vec1[min_len : vec1_len])
else:
sum_vec.extend(vec2[min_len : vec2_len])
print sum_vec
return sum_vec
v1 = [1,3,5]
v2 = [2,4,6,8,10]
addVectors(v1,v2)
iki operasyonlar sonrasında 'sum_vec' sürümleri arasındaki farkı baktınız mı? Tam olarak ne "* çalışmıyor" * ortalama - hatalar? Beklenmeyen çıktılar? – jonrsharpe