Listenverständnis, um verschiedene Listen in Python zu verschmelzen

Ich muss viele Datenproben zeichnen, die jeweils in einer Liste von ganzen Zahlen gespeichert sind. Ich möchte eine Liste aus einer Vielzahl von verketteten Listen erstellen, um sie mit Aufzählung (big_list) zu zeichnen, um eine feste Offset-x-Koordinate zu erhalten. Mein aktueller Code ist:

biglist = [] for n in xrange(number_of_lists): biglist.extend(recordings[n][chosen_channel]) for x,y in enumerate(biglist): print x,y 

Anmerkungen: number_of_lists und selected_channel sind ganzzahlige Parameter, die an anderer Stelle definiert sind, und print x, y ist zum Beispiel (eigentlich gibt es andere Aussagen, um die Punkte zu zeichnen.

Meine Frage ist: Gibt es einen besseren Weg, zum Beispiel Listenverständnisse oder andere Operationen, um das gleiche Ergebnis (fusionierte Liste) ohne die Schleife und die vordefinierte leere Liste zu erreichen?

Vielen Dank

  • Chained, verschachtelte Dict () bekommen Anrufe in Python
  • Python - In und Not In List Syntax Error
  • Entfernen Sie eine gerade / ungerade Zahl aus einer ungeraden / geraden Python-Liste
  • Elegante Möglichkeit, Elemente in einer Liste zu löschen, die keine Teilstrings hat, die in einer anderen Liste erscheinen
  • Pythonlisten-Verständnis, um zwei Werte in einer Iteration zu erzeugen
  • Python - finden Sie inkrementelle nummerierte Sequenzen mit einem Listenverständnis
  • 2 Solutions collect form web for “Listenverständnis, um verschiedene Listen in Python zu verschmelzen”

     import itertools for x,y in enumerate(itertools.chain(*(recordings[n][chosen_channel] for n in xrange(number_of_lists))): print x,y 

    Sie können an itertools.chain() denken, itertools.chain() einen Iterator über die einzelnen Listen verwalten. Es erinnert sich an welche Liste und wo in der Liste du bist. Das spart dir alles Gedächtnis, das du brauchst, um die große Liste zu erstellen.

     >>> import itertools >>> l1 = [2,3,4,5] >>> l2=[9,8,7] >>> itertools.chain(l1,l2) <itertools.chain object at 0x100429f90> >>> list(itertools.chain(l1,l2)) [2, 3, 4, 5, 9, 8, 7] 
    Python ist die beste Programmiersprache der Welt.