2013-11-25 10 views
49

Ich versuche herauszufinden, wie mehrere Werte an eine Liste in Python angehängt werden. Ich weiß, dass es wenige Methoden gibt, um dies zu tun, wie zum Beispiel die Werte manuell einzugeben, oder die Append-Operation in einer for Schleife oder append und extend Funktionen zu verwenden.So hängen Sie mehrere Werte an eine Liste in Python an

Allerdings frage ich mich, ob es eine bessere Möglichkeit gibt, dies zu tun? Vielleicht ein bestimmtes Paket oder eine Funktion?

Ich bin Tag 1 zu Python, also bitte vergib mir, wenn ich naive Frage gestellt habe.

Vielen Dank. :)

+8

Haben Sie die [Listen-Dokumentation] (http://docs.python.org/2/library/stdtypes.html#mutable-sequence-types) schon gefunden? –

+4

Sie sagten, Sie wissen, es gibt ein paar Methoden, dies zu tun, aber zeigen Sie nicht, was Sie versucht haben, oder erklären Sie, warum die Methoden, die Sie bereits kennen, nicht gut genug sind. – Useless

+0

Bitte definieren Sie * sauberer als 'extend()' *. –

Antwort

118

Sie können die sequence method list.extend verwenden, um die Liste um mehrere Werte von jeder Art von iterable zu erweitern, sei es eine andere Liste oder eine andere Sache, die eine Folge von Werten bereitstellt.

>>> lst = [1, 2] 
>>> lst.append(3) 
>>> lst.append(4) 
>>> lst 
[1, 2, 3, 4] 

>>> lst.extend([5, 6, 7]) 
>>> lst.extend((8, 9, 10)) 
>>> lst 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

>>> lst.extend(range(11, 14)) 
>>> lst 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] 

So können Sie list.append() verwenden einen einzigen Wert anhängen, und list.extend()mehrere Werte anzuhängen.

+1

Ein bisschen kompliziert, um Generatoren an Tag 1 der Verwendung von Python einzuführen. –

+0

@DanielRoseman Mein Punkt ist, dass die Werte von * jeder * Art der iterierbaren Sequenz kommen können. – poke

+1

Beachten Sie, dass extend die Struktur des Elements, das Sie hinzufügen, nicht im Vergleich zu "append()" behält. Mit Ihrem Beispiel, das append verwendet, erhalten Sie '[1, 2, 3, 4, [5, 6, 7], (8, 9, 10), Bereich (11, 14)]'. ** Python 3 ** –

6

Anders als die append Funktion, wenn durch "mehrere Werte" Sie eine andere Liste bedeuten, können Sie sie einfach so verketten.

>>> a = [1,2,3] 
>>> b = [4,5,6] 
>>> a + b 
[1, 2, 3, 4, 5, 6] 
6

Wenn Sie einen Blick auf die official docs nehmen, werden Sie rechts unten append, extend sehen. Das ist was du suchst.

Es gibt auch itertools.chain, wenn Sie mehr an einer effizienten Iteration interessiert sind als am Ende einer voll bestückten Datenstruktur.

Verwandte Themen