Heim > Backend-Entwicklung > Python-Tutorial > Listen Sie die Verständnisse in Python auf

Listen Sie die Verständnisse in Python auf

Joseph Gordon-Levitt
Freigeben: 2025-03-07 11:29:08
Original
481 Leute haben es durchsucht

List Comprehensions in Python

Python List Verständnis bietet eine kurze Möglichkeit zum Schreiben von Code, mit dem Sie den Wert eines Ausdrucks gleichzeitig berechnen und einer Variablen zuweisen können. Mit dem Walros -Operator (: =) können wir den Code optimieren:

square_cubes = [res if (res := n**2) % 9 == 0 or res % 4 == 0 else n**3 for n in range(1, 11)]
print(square_cubes)  # 输出: [1, 4, 9, 16, 125, 36, 343, 64, 81, 100]
Nach dem Login kopieren

Hier speichern wir die res Variablen, um die Berechnungsergebnisse n**2 zu speichern und sie in nachfolgendem Code wiederzuverwenden, um wiederholte Berechnungen zu vermeiden.

Listenverständnis von verschachtelten Schleifen

List -Verständnis unterstützt verschachtelte Schleifen, und es gibt keine Begrenzung für die Anzahl der Schleifen. Es ist jedoch zu beachten, dass die Schleifensequenz mit dem ursprünglichen Code übereinstimmen muss. Sie können nach jedem for -Zyklus auch optionale for Bedingungen hinzufügen. Die Listenverständnisstruktur von verschachtelten if Loops lautet wie folgt: for

[ <表达式> for <元素a> in <可迭代对象a> (可选 if <条件a>)
              for <元素b> in <可迭代对象b> (可选 if <条件b>)
              for <元素c> in <可迭代对象c> (可选 if <条件c>)
              ... ]
Nach dem Login kopieren
Das folgende Beispiel zeigt ein Listenverständnis von verschachtelten Schleifen für die Generierung von Multiplikationstabellen:

multiplications = []
for i in range(1, 4):
    for n in range(1, 11):
        multiplications.append(i*n)
print(multiplications) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Nach dem Login kopieren
Konvertieren Sie es in ein Listenverständnis:

multiplications = [i*n for i in range(1,4) for n in range(1,11)]
print(multiplications) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Nach dem Login kopieren
Listenverständnis kann auch verwendet werden, um verschachtelte Listen zu verflachen:

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]
flatten = [n for row in matrix for n in row]
print(flatten) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Nach dem Login kopieren
verschachtelte Listenverständnis

verschachteltes Listenverständnis unterscheidet sich vom Listenverständnis von verschachtelten Schleifen. Ersteres ist eine abgeleitete interne verschachtelte Ableitung, die letztere ist eine interne Schleife, verschachtelte Schleife. Zum Beispiel Matrix -Transponierung:

Normale Schleife verwenden:

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]
transpose = []
for i in range(4):
    temp = []
    for row in matrix:
        temp.append(row[i])
    transpose.append(temp)
print(transpose) # 输出: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Nach dem Login kopieren
Verwenden Sie das Verständnis für verschachtelte Liste:

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]
transpose = [[row[n] for row in matrix] for n in range(4)]
print(transpose) # 输出: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Nach dem Login kopieren
Set- und Wörterbuchableitung

Das Konzept des Listenverständnisses gilt auch für Set- und Wörterbuchverständnisse. Wörterbuch wird verwendet, um Schlüsselwertpaare zu speichern:

squares_cubes = {n: n**2 if n%2 == 0 else n**3 for n in range(1,11)}
print(squares_cubes) # 输出: {1: 1, 2: 4, 3: 27, 4: 16, 5: 125, 6: 36, 7: 343, 8: 64, 9: 729, 10: 100}
Nach dem Login kopieren
SET -Ableitung wird verwendet, um ungeordnete Sets zu erstellen:

import random
non_multiples = {n for n in random.sample(range(0, 1001), 20) if n not in range(0, 1001, 9)}
print(non_multiples) # 输出 (示例): {3, 165, 807, 574, 745, 266, 616, 44, 12, 910, 336, 145, 755, 179, 25, 796, 926}
Nach dem Login kopieren
Zusammenfassung

In diesem Artikel wird die Python -Liste und ihre Anwendungen in der Codeoptimierung eingeführt, einschließlich verschachtelter Schleifen, verschachtelten Ableitungen sowie Sammel- und Wörterbuchableitungen. Es ist zu beachten, dass für komplexe verschachtelte Schleifen zur Verbesserung der Code -Lesbarkeit das Listenverständnis in mehrere Zeilen aufgeteilt werden kann. Es wird empfohlen, die entsprechende Methode entsprechend der tatsächlichen Situation unter Berücksichtigung der Effizienz und der Lesbarkeit der Ausgleiche zu wählen.

Das obige ist der detaillierte Inhalt vonListen Sie die Verständnisse in Python auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage