Inhaltsverzeichnis
Listenverständnis von verschachtelten Schleifen
Heim Backend-Entwicklung Python-Tutorial Listen Sie die Verständnisse in Python auf

Listen Sie die Verständnisse in Python auf

Mar 07, 2025 am 11:29 AM

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Apr 02, 2025 am 07:15 AM

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Apr 02, 2025 am 06:36 AM

Verwenden Sie Python im Linux -Terminal ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie bekomme ich Nachrichtendaten, die den Anti-Crawler-Mechanismus von Investing.com umgehen? Wie bekomme ich Nachrichtendaten, die den Anti-Crawler-Mechanismus von Investing.com umgehen? Apr 02, 2025 am 07:03 AM

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...

See all articles