Vergleich von Zeichen in Zeichenketten

Ich versuche eine Funktion zu erzeugen, vergleicht Zeichen in der gleichen position von zwei Saiten von gleicher Länge und gibt die Anzahl der Unterschiede.

Beispielsweise

a = "HORSE"
b = "TIGER"

Und würde es wieder 5 (wie alle Zeichen in der gleichen position unterschiedlich)

Hier ist, was ich gearbeitet habe.

def Differences(one, two):
    difference = []
    for i in list(one):
        if list(one)[i] != list(two)[i]:
            difference = difference+1
    return difference

Dass gibt eine Fehlermeldung "List indices must be integers nicht strings"

Und so habe ich versucht, drehen Sie es in int durch Verwendung von int(ord(

def Differences(one, two):
    difference = 0
    for i in list(one):
        if int(ord(list(one)[i])) != int(ord(list(two)[i])):
            difference = difference+1
    return difference

Denen auch wieder die gleichen Fehler.

Wenn ich die Liste drucken(ein)[1] != Liste(zwei)[1] es eithers gibt True oder False zurück, so ist der Vergleich richtig gemacht.

Können Sie mir sagen, wie zu beheben mein code für diesen Zweck?

Der Grund, warum man immer Fehler, weil Sie Durchlaufen den string mit der for-Schleife. In Python, wenn Sie Durchlaufen, etwas (und - nebenbei - Sie nicht müssen zu konvertieren strings, Listen, strings sind iterables von der Natur in python) Sie bekommen jedes sub-Element in das Element (im Gegensatz zu einem index-Zahl). So bist du immer ["H","O","R","S","E"] als "ich" Werte in der Sie for-loop, die offensichtlich nicht von Indizes (D. H. - 0,1,2,3,4).

InformationsquelleAutor Denis Moura | 2016-06-22

Schreibe einen Kommentar