Python-Listenanalyse

巴扎黑
Freigeben: 2017-06-27 09:09:41
Original
1934 Leute haben es durchsucht

Listenanalyse, wird hauptsächlich zum dynamischen Erstellen von Listen verwendet

In diesem Artikel geht es hauptsächlich um die Verwendung von Lambda, Map () und Filter () in Kombination mit Listenanalyseanweisungen.

Liste Das Grundlegende Die Syntax des Parsens lautet: [expr for iter_var in iterable]

Der Kern dieser Anweisung ist die for-Schleife, die alle Einträge des iterierbaren Objekts iteriert. Der vorhergehende Ausdruck wird auf jedes Mitglied der Sequenz angewendet und der Endergebniswert ist die vom Ausdruck erzeugte Liste.

1. Grundlegende Verwendung

Nehmen wir ein Beispiel

Test im Leerlauf:

>>> for i in range(0,8)]

[0,1,2,3,4,5,6,7]

wobei i in der grundlegenden Syntax expr ist. Es ist auch iter_val ; auf andere Weise führen wir eine Operation mit dem darin enthaltenen Wert durch und multiplizieren alle Mitglieder mit 2

>>> >[0, 2, 4, 6, 8, 10, 12, 14]

Dies ist eine Listenanalyse, die vollständig gemäß der grundlegenden Syntax geschrieben wurde

2. Beurteilungsbedingungen nach der Recycling-Anweisung hinzufügen

Erweiterte Versionssyntax: [expr für iter_val in iterable if cond_expr]

Wir können auch einige Anweisungen danach erweitern und hinzufügen, um beispielsweise die Liste zu filtern; wir brauchen nur die Zahl in diesem Wert, die durch 2 teilbar ist

>>> [i für i in range(1,8) if i%2 == 0]

[ 2 , 4, 6]


Diese Anweisung ähnelt der Verwendung von Filter, daher können wir auch die integrierte Filterfunktion von Python verwenden, um denselben Wert zu erreichen

>> ;> (lambda x:x%2==0, range(1,8))

>>> für i in l:

i

2

4
6

Aber ich fand nein, es gibt einige Unterschiede, weil ich die Liste nicht direkt ausgedruckt habe. Warum? Da der Rückgabewert des Filters ein Generator ist, ist der Generator

und kann den nächsten Wert nur durch Iteration

3 ermitteln wird verwendet, um die gleichen Ergebnisse wie beim Listenparsen zu erzielen

>>> map(lambda x: x*2, range(1,8))

[2, 4, 6 , 8, 10, 12, 14]

Die Verwendung kann den gleichen Effekt erzielen wie [x * 2 für x im Bereich (1,8)], letzteres ist jedoch effizienter als map()

4. Matrix generieren

Wenn Sie eine Matrix mit 3 Zeilen und 5 Spalten benötigen, ist es ganz einfach:

>>> [(x,y) für x im Bereich(0,3) für y im Bereich(0,5)]

[(0, 0), (0, 1), ( 0 , 2), (0, 3), (0, 4),

(1, 0), (1, 1), (1, 2), (1, 3), (1, 4 ),


(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]

Weitere Informationen zum Parsen von Referenzlisten finden Sie auch in PEP 202

Das obige ist der detaillierte Inhalt vonPython-Listenanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage