Python: das Verständnis der Unterschied zwischen append und extend

Den folgenden code wird nicht ausgeführt, in seinem aktuellen Zustand. Allerdings, wenn ich sum_vec.extend( vec1[i] + vec2[i] ) zu sum_vec.append( vec1[i] + vec2[i] ) funktioniert es Prima. Ich verstehe den grundlegenden Unterschied zwischen Anhängen und verlängern, aber ich verstehe nicht, warum der code nicht funktioniert, wenn ich verlängern.

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)
  • Haben Sie schaute auf die Differenz zwischen den Versionen des sum_vec nach den beiden Operationen? Was genau bedeutet "funktioniert nicht" bedeutet - die Fehler? Unerwartete Ausgaben?
InformationsquelleAutor AlanH | 2015-04-08
Schreibe einen Kommentar