Heim > Backend-Entwicklung > Python-Tutorial > Refactor des Tages – Ts Python-Rekursion und -Typen

Refactor des Tages – Ts Python-Rekursion und -Typen

Susan Sarandon
Freigeben: 2025-01-26 00:11:09
Original
580 Leute haben es durchsucht

Refatorada do dia - Ts   Python   recursividade e tipos

In diesem Artikel untersuchen wir eine elegante und effiziente Python -Lösung, um leere Zeichenfolgen in einen willkürlichen Wert innerhalb von Nastled -Datenstrukturen (Wörterbücher und Listen) umzuwandeln. Die ursprüngliche Typenskriptionslösung inspirierte zwar einen prägnanteren und "Pythonica" -Ansatz unter Verwendung von Rekursion und Verständnis

zunächst dauerte der Bedarf, wenn es um drei verschiedene Dateien mit unterschiedlichen Python -Datenstrukturen handelte. Die Suche nach einer generischen Lösung hat zur Entwicklung einer rekursiven Funktion geführt, die die Datenstruktur durchläuft und leere Zeichenfolgen durch einen Standardwert ersetzt ("unkonstant" im Beispiel)

Die erste Version der Python -Funktion verwendete explizite Schleifen, um Wörterbücher und Listen zu iterieren. Die Entwicklung von

Dictionary -Komponsion

und list komprahsion führte jedoch zu einem signifikant kompakteren und lesbaren Code, wodurch dieselbe rekursive Logik beibehalten wurde. Die endgültige Lösung in Python:

wie es funktioniert:
<code class="language-python">def substituir_strings_vazias(dados):
    if isinstance(dados, dict):
        return {k: substituir_strings_vazias(v) for k, v in dados.items()}
    elif isinstance(dados, list):
        return [substituir_strings_vazias(item) for item in dados]
    elif isinstance(dados, str) and dados == "":
        return "NAO_ENCONTRADO"
    return dados

dados = {
    "nome": "",
    "idade": 25,
    "endereco": {
        "rua": "",
        "cidade": "São Paulo",
        "estado": ""
    },
    "contatos": ["", "email@example.com"]
}

dados_convertidos = substituir_strings_vazias(dados)
print(dados_convertidos)</code>
Nach dem Login kopieren

Die Funktion ist rekursiv. Sie überprüft die Art der empfangenen Daten:

substituir_strings_vazias

    Wörterbuch:
  1. Wenn es sich um ein Wörterbuch handelt, verwendet es

    Wörterbuchverständnis , um ein neues Wörterbuch zu erstellen, bei dem jeder Wert von derselben Funktion rekursiv verarbeitet wird.

    Liste:
  2. Wenn es sich um eine Liste handelt, wird
  3. eine neue Liste für die Liste der Listenkomposition verwendet, um eine neue Liste zu erstellen, in der jedes Element rekursiv verarbeitet wird

    leere Zeichenfolge: Wenn es sich um eine leere Zeichenfolge handelt, gibt es "unkonstant" zurück

  4. Andere Typen: Für einen anderen Datenart wird die Originaldaten ohne Änderungen zurückgegeben.

  5. Rekursion stellt sicher, dass die Funktion alle Nastleed -Ebenen der Datenstruktur verarbeitet. Der Python -Code -Selbstverständnis unterstreicht dank
  6. -Komponsion

    die Eleganz und Effizienz der Lösung im Vergleich zur ursprünglichen Typskriptversion. Die Funktion wird für die Normalisierung von Datensätzen mit Null- oder leeren Werten stark wiederverwendbar. Der Unterschied zwischen den endgültigen Python -Ansätzen und dem anfänglichen Typuskript ist bemerkenswert und demonstriert die Leistung der in Python verfügbaren Tools, um diese Art von Problemen zu lösen

Das obige ist der detaillierte Inhalt vonRefactor des Tages – Ts Python-Rekursion und -Typen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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