Ich möchte eine Liste von Listen aus einer Liste von Multi-Feld-Strings erstellen und frage mich, ob es möglich ist, dies in einem Verständnis zu tun.mehrere Variablen im Listenverständnis?
Eingang:
inputs = ["1, foo, bar", "2, tom, jerry"]
gewünschte Ausgabe:
[[1, "foo", "bar"], [2, "tom", "jerry"]]
Splitting der String in einem Verständnis ist einfach:
>>> [s.split(",") for s in inputs]
[['1', ' foo', ' bar'], ['2', ' tom', ' jerry']]
Aber ich habe Probleme, herauszufinden, wie man Zugang Die Spalten nach der Zeichenkette wurden innerhalb des Verständnisses geteilt, da es eine Varia erfordern würde Zuweisung. Die folgenden sind nicht gültig Python, sondern zeigen, was ich suche:
[[int(x), y.strip(), z.strip() for x,y,z = s.split(",")] for s in inputs]
or
[[int(v[0]), v[1].strip(), v[2].strip() for v = s.split(",")] for s in inputs]
Gibt es eine Möglichkeit Variablen in einem Verständnis zuweisen, so dass die Ausgabe der Funktionen der Variablen zusammengesetzt werden können? Eine Schleife ist trivial, aber das Erzeugen einer Liste durch Transformieren von Eingaben scheint eine "Verständnis-ische" Aufgabe zu sein.
outputs = []
for s in inputs:
x,y,z = s.split(",")
outputs.append([int(x), y.strip(), z.strip()])
Sie die Elemente mit ihrem Index zugreifen. Für '[['1', 'foo', 'bar'], ['2', 'tom', 'jerry']] ',' lst [0] [0] 'wäre' 1', 'lst [0] [1] 'wäre' foo' und so weiter. Wenn Sie Variablen benötigen, müssen Sie sie wahrscheinlich als Karten mit Schlüsseln speichern. – shaktimaan
'[... für x, y, z in (s.split (',') für s in Eingängen)]' – jonrsharpe