lsit-Produktion...LOGIN

lsit-Produktion (Listenproduktion)

1. So erstellen Sie eine Liste

Nach unserer vorherigen Studie wissen wir alle, wie man eine Liste erstellt, aber in manchen Fällen ist es zu mühsam, eine Liste zu erstellen insbesondere die Form der Zuweisung Es ist zu mühsam, eine nach der anderen zu schreiben und Werte einzeln zuzuweisen. Sie möchten beispielsweise eine Liste mit 30 Elementen erstellen und die darin enthaltenen Elemente sind 1–30. Wir können so schreiben:

# -*- coding: UTF-8 -*-
list1=list ( range (1,31) )
print(list1)

Ausgabeergebnis:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Das wurde tatsächlich schon erwähnt: Es gibt zum Beispiel ein Beispiel für das Drucken der Multiplikationstabelle. Für diese Methode sind nur wenige Sätze erforderlich . Der Code ist ausreichend. Weitere Informationen finden Sie in diesem vorherigen Kapitel: Umfassendes Beispiel für bedingte Anweisungen und Schleifenanweisungen

Wenn jedoch eine Liste verwendet wird Generative Formeln können Multiplikationstabellen in nur einer Codezeile generieren. Schauen Sie sich den Code genau an:

print('\n'.join([' '.join ('%dx%d=%2d' % (x,y,x*y)  for x in range(1,y+1)) for y in range(1,10)]))

Das endgültige Ausgabeergebnis:

1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
1x4= 4 2x4= 8 3x4=12 4x4=16
1x5= 5 2x5=10 3x5=15 4x5=20 5x5=25
1x6= 6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7= 7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8= 8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9= 9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

Hier müssen wir jedoch zunächst verstehen, wie die Listengenerierung erstellt wird

2. Listengenerierung Erstellen

Zuerst lsit Die Syntax des generativen Ausdrucks lautet:

[expr for iter_var in iterable] 
[expr for iter_var in iterable if cond_expr]

Die erste Syntax: Iterieren Sie zuerst alle Inhalte in iterable und fügen Sie für jede Iteration die entsprechenden Inhalte in iterable in iter_var ein und wenden Sie dann den Inhalt von iter_var in an expression und generieren Sie schließlich eine Liste mit dem berechneten Wert des Ausdrucks.

Die zweite Syntax: Nur der Inhalt, der die Bedingung erfüllt, wird in den entsprechenden Inhalt in iter_var eingefügt, und dann wird der Inhalt von iter_var im Ausdruck angewendet und schließlich berechnet Wert des Ausdrucks wird verwendet. Generieren Sie eine Liste.

Tatsächlich ist es nicht schwer zu verstehen, da es sich um eine Listengenerierung handelt. Daher muss es von [] umschlossen werden, und dann stellt die Anweisung darin das zu generierende Element an den Anfang, gefolgt von a for-Schleifenanweisung oder for-Schleifenanweisungen und Beurteilungsanweisungen.

Beispiel:

# -*- coding: UTF-8 -*-
lsit1=[x * x for x in range(1, 11)]
print(lsit1)

Ausgabeergebnis:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Wie Sie sehen können, setzen Sie einfach das zu generierende Element x * x an den Anfang, gefolgt von einer for-Schleife. Erstellen Sie die Liste. Was ist also mit der Form von if nach der for-Schleife? So verstehen Sie:

# -*- coding: UTF-8 -*-
lsit1= [x * x for x in range(1, 11) if x % 2 == 0]
print(lsit1)

Ausgabeergebnis:

[4, 16, 36, 64, 100]

In diesem Beispiel soll die Quadratwurzel einer geraden Zahl von 1 bis 10 ermittelt werden. Wie oben erwähnt, ist x * x das zu seinde Element generiert. Der letzte Teil ist eigentlich eine if-Beurteilungsanweisung, die in der for-Schleife verschachtelt ist.

Mit diesem Wissen können wir auch vermuten, dass es auch for-Schleifen gibt, die innerhalb der for-Schleife verschachtelt sind. Konkretes Beispiel:

# -*- coding: UTF-8 -*-
lsit1= [(x+1,y+1) for x in range(3) for y in range(5)] 
print(lsit1)

Ausgabeergebnis:

[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]

Tatsächlich ist es nicht schwer, diese Sache zu verstehen, wenn Sie wissen, wie die Listenproduktionsformel kombiniert wird. Denn bei der Listengenerierung werden lediglich die zuvor erlernten Wissenspunkte zusammengefasst und durch eine prägnantere Schreibweise ersetzt.

nächsten Abschnitt
KapitelKursunterlagen