Ich versuche, Werte und Positionen von Buchstaben zurückzugeben. Die Ausführung als einfache for-Schleife funktioniert einwandfrei. Es war, als ich es in eine Funktion verwandelte, dass es anfing, wackelig auszusehen.Liste gibt zurück Keine, Wert
Hier ist es zusammen mit seinem Ausgang:
dict = {'a': 1, 'b': 2 ... 'z': 26}
list1 = []
list2 = []
def plot(word):
counter = 0
for i in word:
y = dict.get(i)
list1.append(y) #keeps printing None for the first letters
counter += 1
x = counter
list2.append(x)
print list1
print list2
r = zip(list1, list2)
print r
t = raw_input('Enter word: ')
Enter word: Hello
plot(t)
Output:
[None, None, 5, 12, 12, 15]
[1, 2, 3, 4, 5]
[(None, 1), (None, 2), (5, 3), (12, 4), (12, 5)]
Wenn 'dict.get (i)' 'None' ist, dann ist' i' kein Schlüssel in 'dict'. '' h'' ist drin, aber ist '' H''? Auch, * nennen Sie nicht Ihr eigenes Wörterbuch 'dict' *. – jonrsharpe
Die Ausgabe, die ich suche, ist [(8, 1), (5, 2), (12, 3), (12, 4), (15, 5)] – Rajahfox
Beachten Sie auch, dass list1 sechs Elemente hat, gerade obwohl 'Hallo' nur fünf Buchstaben hat. Sie verpassen also nur einen Buchstaben. Verwenden Sie die lower() -Methode für das Wort, um alle Buchstaben in Kleinbuchstaben zu schreiben. Stellen Sie dann sicher, dass sich vor dem Wort keine Leerzeichen befinden (sieht so aus, als hätte 'Hallo' ein Leerzeichen davor). –