Junior — Middle
How is collision handling performed when using hash tables in Python?
sobes.tech AI
Answer from AI
In Python, hash tables are implemented using the built-in dict type. Collision handling is done through open addressing with double hashing.
When a collision occurs (two keys have the same hash), Python searches for the next free cell in the table according to a specific sequence, calculated using a second hash function. This allows efficient collision resolution without using linked lists.
A simplified example:
# Pseudocode for inserting into a hash table with open addressing
index = hash(key) % size
step = secondary_hash(key)
while table[index] is occupied and table[index].key != key:
index = (index + step) % size
# Insert or update the value
Thus, Python ensures fast dictionary operations even in the presence of collisions, maintaining an amortized access time close to O(1).