Wie kann ich zwei Listen in Python miteinander verknüpfen?
Beispiel:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
Erwartetes Ergebnis:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
Wie kann ich zwei Listen in Python miteinander verknüpfen?
Beispiel:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
Erwartetes Ergebnis:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
Das ist ganz einfach, und ich glaube, es wurde sogar in das Tutorial :
>>> listone = [1,2,3]
>>> listtwo = [4,5,6]
>>>
>>> listone + listtwo
[1, 2, 3, 4, 5, 6]
In dieser Frage wird direkt nach der Verbindung zweier Listen gefragt. Sie steht jedoch ziemlich weit oben in den Suchergebnissen, auch wenn Sie nach einer Möglichkeit suchen, viele Listen zu verbinden (einschließlich des Falls, dass Sie keine Listen verbinden).
Ich denke, die beste Option ist die Verwendung von Listenauffassungen:
>>> a = [[1,2,3], [4,5,6], [7,8,9]]
>>> [x for xs in a for x in xs]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sie können auch Generatoren erstellen:
>>> map(str, (x for xs in a for x in xs))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
Alte Antwort
Betrachten Sie diesen allgemeineren Ansatz:
a = [[1,2,3], [4,5,6], [7,8,9]]
reduce(lambda c, x: c + x, a, [])
Wird ausgegeben:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Beachten Sie, dass dies auch korrekt funktioniert, wenn a
es []
o [[1,2,3]]
.
Dies lässt sich jedoch effizienter bewerkstelligen mit itertools
:
a = [[1,2,3], [4,5,6], [7,8,9]]
list(itertools.chain(*a))
Wenn Sie keine list
sondern nur eine Iterable, weglassen list()
.
Update
Die von Patrick Collins in den Kommentaren vorgeschlagene Alternative könnte auch für Sie funktionieren:
sum(a, [])
Es ist erwähnenswert, dass die itertools.chain
Funktion akzeptiert eine variable Anzahl von Argumenten:
>>> l1 = ['a']; l2 = ['b', 'c']; l3 = ['d', 'e', 'f']
>>> [i for i in itertools.chain(l1, l2)]
['a', 'b', 'c']
>>> [i for i in itertools.chain(l1, l2, l3)]
['a', 'b', 'c', 'd', 'e', 'f']
Wenn eine iterierbare Datei (Tupel, Liste, Generator usw.) die Eingabe ist, wird die from_iterable
Methode der Klasse verwendet werden kann:
>>> il = [['a'], ['b', 'c'], ['d', 'e', 'f']]
>>> [i for i in itertools.chain.from_iterable(il)]
['a', 'b', 'c', 'd', 'e', 'f']
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.