Bagaimana untuk Melaksanakan Jadual Hash Dwi Arah dalam Python untuk Berbilang Kekunci dengan Nilai yang Sama?

Susan Sarandon
Lepaskan: 2024-10-29 12:06:29
asal
626 orang telah melayarinya

How to Implement a Bidirectional Hash Table in Python for Multiple Keys with the Same Value?

Pelaksanaan Jadual Hash Dwiarah dalam Python

Dict terbina dalam Python ialah struktur data yang sangat berguna, menyediakan carian yang cekap berdasarkan kekunci. Walau bagaimanapun, situasi timbul apabila carian terbalik daripada nilai dikehendaki. Artikel ini meneroka kaedah yang paling berkesan untuk melaksanakan jadual cincang dua arah, menawarkan contoh yang diilhamkan oleh penyelesaian sedia ada dan diubah suai untuk menangani keperluan khusus.

Pelaksanaan

Penyelesaian yang dibentangkan menggunakan bidict kelas tersuai yang memanjangkan dict Python standard. Ia mengekalkan kamus songsang tambahan yang mengemas kini dirinya secara automatik apabila bidict diubah suai. Kamus songsang ini memetakan nilai kepada senarai kunci yang mempunyai nilai yang diberikan kepadanya.

Yang penting, tidak seperti perpustakaan sedia ada, pelaksanaan ini membenarkan berbilang kunci dengan nilai yang sama. Ciri ini penting dalam senario tertentu.

Penggunaan

Kelas bidict menggunakan kaedah utama berikut:

  1. bidict(args, kwargs ): Pembina, menerima hujah dan hujah kata kunci yang disimpan dalam dict standard dan kamus songsang.
  2. bidict.__setitem__(kunci, nilai): Menetapkan kunci kepada nilai. Jika kunci sudah ada dalam bidict, ia mengalih keluar kunci daripada senarai kunci yang dikaitkan dengan nilai semasanya dalam kamus songsang. Ia kemudian menetapkan kunci kepada nilai dalam kedua-dua kamus, mengemas kini senarai kunci yang dikaitkan dengan nilai dalam kamus songsang.
  3. bidict.__delitem__(key): Mengalih keluar kunci daripada bidict. Ia mencari nilai kunci yang berkaitan dan mengemas kini kamus songsang dengan sewajarnya, mengalih keluar kunci daripada senarai kunci yang dikaitkan dengan nilai. Jika senarai kunci untuk nilai menjadi kosong, nilai dialih keluar daripada kamus songsang.

Contoh Penggunaan

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

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Jadual Hash Dwi Arah dalam Python untuk Berbilang Kekunci dengan Nilai yang Sama?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan