Ich experimentiere mit Python und stehe dabei, die Fehlermeldungen im Zusammenhang zu verstehen, was ich mache.Umrissen mit mehreren Eingabesätzen
Ich spiele um mit Comprehensions und zu versuchen, ein Muster zu finden eine Liste/Wörterbuch Verständnis mit mehr als einem Eingang gesetzt zu erstellen (vorausgesetzt, dies möglich ist):
Hinweis: Hier wird das Wort Eingang Set bedeutet den Eingabebereich des Verständnisses. In der Setbuilder-Notation, von der Python seine Comprehensions [Y für X in LIST] abgeleitet hat, ist Y die Ausgabefunktion, X ist die Variable und LIST ist die Eingabesatz.
Angenommen ich folgende Arbeitscode:
from random import randint
mydict = {k: 0 for k in range(10)}
result = {randint(0,9): v + 1 for v in mydict.values()}
bin ich nicht speziell darüber, etwas zu tun versuchen. Dies ist nicht einmal nützlicher Code, weil er nicht wie erwartet funktioniert. Alle Elemente im Wörterbuch haben den Wert 1 und nicht nur die Elemente, auf die der Zufallsgenerator zeigt. Mein einziges Ziel ist es, eine Basis zu haben, von wo aus ich meinen Versuch beginne, mit einem Tupel von Eingabesätzen zu arbeiten.
from random import randint
mydict = {k: 0 for k in range(10)}
result = {k: v + 1 for k, v in (randint(0,9), mydict.values())}
Diese Option gibt mir: TypeError: 'int' object is not iterable
.
Durch die Eingangssätze Swapping und ich habe Auspacken:
result = {k: v + 1 for *v, k in (mydict.values(), randint(0,9))}
Aber diese Option gebe ich: TypeError: can only concatenate list (not "int") to list
Sind diese Fehler erscheinen, weil ich etwas die Sprache Grammatik nicht versteht, zu tun versuchen, oder fehle ich etwas und ich könnte tatsächlich den Code reparieren?
Es ist nicht klar, welche Ausgabe Sie * * erwarten. Sage 'randint (0,9)' gab 3 zurück; Welches "Ergebnis" würdest du haben wollen? – DSM
Möchten Sie ein Diktat mit Schlüsseln von 'range (10)' und zufälligen Werten von 'randint'? – Navith
Sie sind auf die Absicht des Codes konzentriert. Die einzige Absicht hier ist zu sehen, ob es einen Weg gibt, ein Tupel von Eingabesätzen in einem Verständnis zu haben. Der Code ist nur meine Basis für Experimente. –