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 -Komponsionund 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>
Die Funktion ist rekursiv. Sie überprüft die Art der empfangenen Daten:
substituir_strings_vazias
Wörterbuchverständnis , um ein neues Wörterbuch zu erstellen, bei dem jeder Wert von derselben Funktion rekursiv verarbeitet wird.
Liste:leere Zeichenfolge: Wenn es sich um eine leere Zeichenfolge handelt, gibt es "unkonstant" zurück
Andere Typen: Für einen anderen Datenart wird die Originaldaten ohne Änderungen zurückgegeben.
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!