Dies kann mit itertools.chain
erfolgen:
1 2 3 4 5 6 7 8
Gemäß der Dokumentation, chain
führt Folgendes:
import itertools
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8]
for i in itertools.chain(l1, l2):
print(i, end = " ")
Welche gedruckt werden
einen Iterator Stellen das gibt Elemente vom ersten iterablen bis exh zurück austed, geht dann zum nächsten iterablen Schritt über, bis alle Iterables erschöpft sind.
Wenn Sie Ihre Listen in einer Liste haben, ist itertools.chain.from_iterable
verfügbar:
l = [l1, l2]
for i in itertools.chain.from_iterable(l):
print(i, end= " ")
die das gleiche Ergebnis liefert.
Wenn Sie nicht möchten, dass ein Modul für diese importieren, eine Funktion zu schreiben für sie ziemlich geradlinig ist:
def custom_chain(*it):
for iterab in it:
yield from iterab
Dies erfordert Python 3 für Python 2, nur yield
sie wieder ein mit Loop:
def custom_chain(*it):
for iterab in it:
for val in iterab:
yield val
Zusätzlich zu dem vorherigen, Python 3.5
mit seinen erweiterten Auspackstation Verallgemeinerungen, ermöglicht auch Literal in der Liste Auspacken:
for i in [*l1, *l2]:
print(i, end=' ')
obwohl dies etwas schneller als l1 + l2
ist, erstellt es immer noch eine Liste, die dann geworfen wird; nur als endgültige Lösung.