Ich bin ein Noob in Python 3, ich komme aus Java und Javascript.
Wie kann ich gehen
a = ['a', 'b', 'c']
b = [1, 2, 3]
c = ['red', 'green', 'blue']
Zu
x = [ ['a', 1, 'red'], ['b', 2, 'green'], ['c', 3, 'blue'] ]
Auf einfache Weise, ohne eine Schleife zu verwenden (while / for / map)?
Vielen Dank
4 Antworten
Dafür wurde das eingebaute zip
entwickelt. zip
nimmt eine beliebige Anzahl von Iterablen und gibt Tupel mit Elementen aus entsprechenden Indizes zurück.
>>> a = ['a', 'b', 'c']
>>> b = [1, 2, 3]
>>> c = ['red', 'green', 'blue']
>>> list(map(list, zip(a, b, c)))
[['a', 1, 'red'], ['b', 2, 'green'], ['c', 3, 'blue']]
Die von zip
generierten Tupel werden hier explizit in Listen konvertiert, da Sie Listen angefordert haben. Wenn es keinen besonderen Grund gibt, Listen anstelle von Tupeln zu haben, verwenden Sie einfach
>>> list(zip(a, b, c))
[('a', 1, 'red'), ('b', 2, 'green'), ('c', 3, 'blue')]
def combine_list(*args):
return map(list, args)
final = list(combine_list(a,b,c))
Es wird sein wie:
[['a', 'b', 'c'], [1, 2, 3], ['rot', 'grün', 'blau']]
Angenommen, alle Listen haben die gleiche Länge, können Sie das Listenverständnis verwenden
X = [[a [i], b [i], c [i]] für i im Bereich (len (a))]
Dies führt zu
[['a', 1, 'rot'], ['b', 2, 'grün'], ['c', 3, 'blau']]
Wie Sie bereits erwähnt haben, "auf einfache Weise, ohne eine Schleife (while / for / map) zu verwenden"
Dies war der einfachste Ansatz, den ich mir vorstellen konnte:
Definieren Sie zunächst a, b, c, die Daten enthalten, p, q, r als temporäre Liste und eine leere Liste x, um die endgültige Ausgabe zu speichern. Verwenden Sie einfach die Funktion zum Anhängen der Liste nacheinander, um a, b und c an x anzuhängen. Drucken Sie x und Sie erhalten eine Liste mit Listen ohne for-Schleife! Aber es geht um zusätzliches Gedächtnis und das Tippen von Enten.
a = ['a', 'b', 'c']
b = [1, 2, 3]
c = ['red', 'green', 'blue']
p = []
q = []
r = []
x = []
p.append(a[0])
p.append(b[0])
p.append(c[0])
q.append(a[1])
q.append(b[1])
q.append(c[1])
r.append(a[2])
r.append(b[2])
r.append(c[2])
x.append(p)
x.append(q)
x.append(r)
print(x)
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.