この記事では、エレガントで効率的なPythonソリューションを調べて、空の文字列を巣になったデータ構造(辞書とリスト)内の任意の値に変換します。 元のタイプスクリプトソリューションは、機能的ではありますが、再帰と
の理解を使用して、より簡潔で「Pythonica」アプローチを促しました 最初に、異なるPythonで囲まれたデータ構造を含む3つの異なるファイルを扱うときに必要性が生じました。ジェネリックソリューションの検索により、データ構造を実行する再帰関数の開発が行われ、空の文字列が標準値に置き換えられました(例では「制限されていません」) Python関数の最初のバージョンは、辞書とリストについて反復するために明示的なループを使用しました。 ただし、
辞書の補完および
のリストの進化により、comprahensionのリストは、同じ再帰ロジックを維持し、大幅にコンパクトで読みやすいコードをもたらしました。 Pythonの最終ソリューション:
それがどのように機能するか:
<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>
は再帰的です。 彼女は、受信したデータの種類をチェックします:
substituir_strings_vazias
辞書:
を使用して、各値が同じ関数によって再帰的に処理される新しい辞書を作成します。 リスト:リストの場合、各アイテムが再帰的に処理される新しいリストを作成します
空の文字列:空の文字列である場合、「制約されていない」
その他のタイプ:
再帰は、関数がデータ構造のすべての巣立ちレベルを処理することを保証します。 Pythonコードの簡潔さは、
以上がDay Refactory -TS Pythonの繰り返しおよびタイプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。