Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknologi asas Python didedahkan: cara melaksanakan jadual cincang

Teknologi asas Python didedahkan: cara melaksanakan jadual cincang

WBOY
WBOYasal
2023-11-08 11:53:001211semak imbas

Teknologi asas Python didedahkan: cara melaksanakan jadual cincang

Rahsia teknologi asas Python: Cara melaksanakan jadual hash

Jadual hash ialah struktur data yang sangat biasa dan penting dalam komputer Ia boleh menyimpan dan mencari sebilangan besar pasangan nilai kunci dengan cekap. Dalam Python, kita boleh menggunakan jadual cincang menggunakan kamus, tetapi beberapa orang memahami butiran pelaksanaannya secara mendalam. Artikel ini akan mendedahkan teknologi pelaksanaan asas jadual hash dalam Python dan memberikan contoh kod khusus.

Idea teras jadual cincang adalah untuk memetakan kunci ke dalam tatasusunan bersaiz tetap melalui fungsi cincang, dan bukannya menyimpannya mengikut susunan. Ini boleh mempercepatkan carian. Di bawah ini kami akan memperkenalkan pelaksanaan jadual hash langkah demi langkah.

  1. Fungsi cincang
    Fungsi cincang ialah bahagian yang sangat kritikal dalam jadual cincang, yang memetakan kunci kepada kedudukan indeks dalam tatasusunan. Fungsi cincang yang baik seharusnya dapat memetakan kunci secara sama rata pada kedudukan yang berbeza dalam tatasusunan untuk mengurangkan kebarangkalian perlanggaran. Dalam Python, kita boleh menggunakan fungsi hash() untuk menjana nilai hash, tetapi kerana nilai yang dijananya terlalu panjang, biasanya kita perlu melakukan operasi modulo padanya untuk menyesuaikannya dengan saiz tatasusunan.

Berikut ialah contoh fungsi cincang mudah:

def hash_func(key, size):
    return hash(key) % size
  1. Pelaksanaan jadual hash
    Dalam Python, jadual Hash ialah dilaksanakan melalui objek kamus (dikt). Objek kamus menggunakan jadual cincang secara dalaman untuk menyimpan pasangan nilai kunci. Jadual cincang yang paling mudah boleh dilaksanakan menggunakan tatasusunan dan senarai terpaut.

Mula-mula kita mentakrifkan objek jadual cincang, yang mengandungi tatasusunan dan senarai terpaut:

class HashTable:
    def __init__(self, size):
        self.size = size
        self.table = [[] for _ in range(size)]

Kemudian kami menentukan kaedah sisipan dan carian: #🎜🎜 #

    def insert(self, key, value):
        index = hash_func(key, self.size)
        for item in self.table[index]:
            if item[0] == key:
                item[1] = value
                return
        self.table[index].append([key, value])

    def get(self, key):
        index = hash_func(key, self.size)
        for item in self.table[index]:
            if item[0] == key:
                return item[1]
        raise KeyError(key)

Apabila memasukkan, kita mula-mula mendapat indeks kunci melalui fungsi cincang, dan kemudian cari sama ada kunci itu sudah wujud dalam senarai terpaut pada kedudukan indeks. Jika wujud, kemas kini nilai jika tidak, masukkan pasangan nilai kunci baharu di hujung senarai terpaut.

Semasa mencari, kami juga memperoleh indeks kunci melalui fungsi cincang, dan kemudian melakukan carian linear dalam senarai terpaut pada kedudukan indeks. Jika pasangan nilai kunci yang sepadan ditemui, nilai dikembalikan jika tidak, pengecualian KeyError dilemparkan.

    Gunakan Jadual Hash
  1. Kini kita boleh menggunakan jadual hash yang kami laksanakan. Berikut ialah contoh mudah:
  2. hash_table = HashTable(10)
    hash_table.insert("name", "Tom")
    hash_table.insert("age", 20)
    hash_table.insert("gender", "male")
    
    print(hash_table.get("name"))  # 输出:Tom
    print(hash_table.get("age"))  # 输出:20
    print(hash_table.get("gender"))  # 输出:male
    Ringkasan
  1. Artikel ini memperkenalkan teknologi pelaksanaan asas jadual cincang dalam Python dan memberikan contoh kod khusus . Jadual cincang ialah struktur data yang cekap yang membolehkan operasi pemasukan dan carian dalam masa yang tetap. Menguasai prinsip pelaksanaan dan teknologi berkaitan jadual cincang boleh membantu kami lebih memahami dan menggunakan objek kamus dalam Python.
Saya harap artikel ini akan membantu anda memahami pelaksanaan asas jadual cincang. Jika anda mempunyai sebarang soalan atau cadangan, sila berasa bebas untuk berkomunikasi dengan kami.

Atas ialah kandungan terperinci Teknologi asas Python didedahkan: cara melaksanakan jadual cincang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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