Python: la compréhension de la différence entre l'ajout et la prolonger

Le code ci-dessous ne fonctionnera pas dans son état actuel. Cependant, si je change sum_vec.extend( vec1[i] + vec2[i] ) à sum_vec.append( vec1[i] + vec2[i] ) il fonctionne très bien. Je comprends la base de différents entre l'ajout et la prolonger, mais je ne comprends pas pourquoi le code ne fonctionne pas si j'utilise l'extension.

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)
Avez-vous regardé la différence entre les versions de sum_vec après les deux opérations? Exactement ce que fait "ne fonctionne pas" moyenne des erreurs? Inattendu sorties?

OriginalL'auteur AlanH | 2015-04-08