Il codice seguente non verrà eseguito nel suo stato corrente. Tuttavia, se cambio sum_vec.extend(vec1[i] + vec2[i])
a sum_vec.append(vec1[i] + vec2[i])
funziona perfettamente. Comprendo le differenze di base tra append ed extend, ma non capisco perché il codice non funzioni se uso estendere.Python: comprensione della differenza tra append ed est
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)
hai guardato la differenza tra le versioni di 'sum_vec' dopo le due operazioni? Che cosa esattamente * "non funziona" * significa: errori? Uscite inaspettate? – jonrsharpe