Rumah >pembangunan bahagian belakang >Tutorial Python >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.
Berikut ialah contoh fungsi cincang mudah:
def hash_func(key, size): return hash(key) % size
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.
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
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!