Heim >Backend-Entwicklung >Python-Tutorial >Listen Sie die Verständnisse in Python auf
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]
Hier speichern wir die res
Variablen, um die Berechnungsergebnisse n**2
zu speichern und sie in nachfolgendem Code wiederzuverwenden, um wiederholte Berechnungen zu vermeiden.
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>) ... ]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]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]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]verschachtelte Listenverständnis
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]]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]]Set- und Wörterbuchableitung
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}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}Zusammenfassung
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!