Rumah > pembangunan bahagian belakang > Tutorial Python > Refactory hari - ts python recurutisive dan jenis

Refactory hari - ts python recurutisive dan jenis

Susan Sarandon
Lepaskan: 2025-01-26 00:11:09
asal
610 orang telah melayarinya

Refatorada do dia - Ts   Python   recursividade e tipos

Dalam artikel ini, kami meneroka penyelesaian Python yang elegan dan cekap untuk menukar rentetan kosong kepada nilai arbitrari dalam struktur data bersarang (kamus dan senarai). Penyelesaian Typescript asal, walaupun berfungsi, mengilhamkan pendekatan yang lebih ringkas dan "pythonic" menggunakan rekursi dan pemahaman.

Pada mulanya, keperluan timbul apabila berurusan dengan tiga fail berbeza yang mengandungi struktur data bersarang berbeza dalam Python. Pencarian untuk penyelesaian generik membawa kepada pembangunan fungsi rekursif yang merentasi struktur data, menggantikan rentetan kosong dengan nilai lalai ("NOT_FOUND" dalam contoh).

Versi pertama fungsi dalam Python menggunakan gelung eksplisit untuk mengulangi kamus dan senarai. Walau bagaimanapun, evolusi kepada pemahaman kamus dan pemahaman senarai menghasilkan kod yang jauh lebih padat dan boleh dibaca sambil mengekalkan logik rekursif yang sama.

Penyelesaian muktamad dalam 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>
Salin selepas log masuk

Cara ia berfungsi:

Fungsi substituir_strings_vazias adalah rekursif. Ia menyemak jenis data yang diterima:

  1. Kamus: Jika kamus, ia menggunakan pemahaman kamus untuk mencipta kamus baharu di mana setiap nilai diproses secara rekursif oleh fungsi yang sama.

  2. Senarai: Jika ia adalah senarai, ia menggunakan pemahaman senarai untuk membuat senarai baharu di mana setiap item diproses secara rekursif.

  3. Rentetan Kosong: Jika rentetan kosong, ia mengembalikan "NOT_FOUND".

  4. Jenis Lain: Untuk sebarang jenis data lain, ia mengembalikan data asal tanpa pengubahsuaian.

Rekursi memastikan fungsi memproses semua peringkat struktur data bersarang. Kesingkat kod Python, terima kasih kepada kefahaman, menyerlahkan keanggunan dan kecekapan penyelesaian berbanding versi Typescript asal. Fungsi ini menjadi sangat boleh digunakan semula untuk menormalkan set data dengan nilai kosong atau kosong. Perbezaan antara pendekatan akhir dalam Python dan pendekatan awal dalam Typescript adalah ketara, menunjukkan kuasa alat yang tersedia dalam Python untuk menangani jenis masalah ini.

Atas ialah kandungan terperinci Refactory hari - ts python recurutisive dan jenis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan