Ich möchte ein Wörterbuch und eine Liste in einen Satz dekomprimieren. Zum Beispiel:Wie man mit For-Schleifen über ein Wörterbuch iteriert?
newlist = [1, 2, 3, 4, 5, 6]
new_dictionary = {'code': 2, 'help': 6, 'broken': 4, 'is': 3, 'please': 5, 'my': 1}
Der ursprüngliche Satz ist 'My code is broken please help'
. Die Liste zeigt die Positionen, an denen die Wörter innerhalb des Satzes erscheinen. Das Wörterbuch speichert das Wort und die Position, mit der das Wort assoziiert ist.
Ziel ist es, über das Wörterbuch zu iterieren, bis die Nummer in der Liste übereinstimmt. Sobald dies geschieht, wird der zu dem Wert passende Schlüssel zu einer Liste hinzugefügt. Dies wird so lange passieren, bis keine weiteren Nummern in der Liste sind. Die Liste wird dann in eine Zeichenfolge umgewandelt und an den Benutzer gedruckt.
Ich könnte mir vorstellen, dass so etwas wie dies die Lösung sein würde:
for loop in range(len(newlist)):
x = 0
for k,v in new_dictionary.items():
if numbers[x] == v:
original_sentence.append(k)
else:
x = x + 1
print(original_sentence)
Allerdings druckt der Code nur eine leere Liste. Gibt es eine Möglichkeit, die for-Schleifen neu zu formulieren oder neu anzuordnen, damit der Code funktioniert?
Warum nicht invertieren Sie das Wörterbuch, so dass es Position zu Wort statt Wort zu Position? Dann ist das trivial. – jonrsharpe
Was ist der tatsächliche Anwendungsfall? Was soll dieser Code tun? Wofür verwenden Sie das? Auch was meinst du mit 'Das Ziel ist es, über das Wörterbuch zu iterieren, bis die Nummer in der Liste übereinstimmt ' – Keatinge
Ihr Code würde überhaupt nicht funktionieren, da' original_sentence' und 'numbers' nicht definiert sind. Bitte posten Sie den _actual_ Code, an dem Sie arbeiten. – Selcuk