Bagaimanakah Anda Boleh Melaksanakan Jadual Hash Dwiarah dalam Python?

DDD
Lepaskan: 2024-10-28 04:59:30
asal
478 orang telah melayarinya

How Can You Implement a Bidirectional Hash Table in Python?

Pelaksanaan Jadual Hash Dwi Arah dengan Kelas Bidict

Jadual cincang dua arah menyediakan keupayaan untuk mengindeks dengan kedua-dua kunci dan nilai dalam data yang sama struktur. Kamus asli Python ialah struktur data yang berharga untuk pemetaan sehala, tetapi ia gagal apabila ia berkaitan dengan carian dua arah. Artikel ini membentangkan cara yang cekap untuk melaksanakan jadual cincang dua arah dalam Python.

Butiran Pelaksanaan

Inti pelaksanaan ialah kelas bidict, yang memanjangkan kamus standard Python . Kelas ini mengekalkan dua kamus: satu untuk pemetaan nilai kunci standard dan satu lagi, kamus songsang, untuk pemetaan kunci nilai.

Ciri Utama

Kelas bidict menawarkan beberapa ciri ketara:

  • Autokemas kini direktori songsang: Apabila kamus standard diubah suai (melalui penambahan item, pengubahsuaian atau pemadaman), kamus songsang mengemas kini sendiri secara automatik.
  • Senarai kunci untuk nilai yang sama: Tidak seperti beberapa pelaksanaan dict dwiarah lain, bidict membenarkan berbilang kunci mempunyai nilai yang sama.
  • Pencarian yang cekap: Pendapatan semula kunci atau nilai dilakukan dalam masa yang tetap, memanfaatkan pelaksanaan kamus Python asli.

Contoh Penggunaan

Untuk menunjukkan kefungsiannya, mari buat bidict dan manipulasinya:

<code class="python">import numpy as np
bd = bidict(zip(['a', 'b'], np.random.randint(2, size=2)))
print(bd)  # {'a': 1, 'b': 0}
print(bd.inverse)  # {1: ['a'], 0: ['b']}</code>
Salin selepas log masuk

Kami boleh mengubah suai nilai untuk kekunci 'a':

<code class="python">bd['a'] = 0
print(bd)  # {'b': 0, 'a': 0}
print(bd.inverse)  # {0: ['b', 'a']}</code>
Salin selepas log masuk

Perhatikan bahawa kamus songsang dikemas kini secara automatik untuk mencerminkan perubahan. Kami juga boleh memadamkan item daripada kamus:

<code class="python">del bd['a']
print(bd)  # {'b': 0}
print(bd.inverse)  # {0: ['b']}</code>
Salin selepas log masuk

Sekali lagi, kamus songsang dengan lancar menyesuaikan pemadaman.

Kesimpulannya, kelas bidict menyediakan pelaksanaan dwiarah yang cekap dan mudah jadual hash dalam Python, menawarkan direktori songsang pengemaskinian automatik, sokongan untuk berbilang kunci dengan nilai yang sama dan carian masa tetap.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Melaksanakan Jadual Hash Dwiarah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!