FAQ: Hash Maps: Python - Handling Collisions in the Setter

#1

This community-built FAQ covers the “Handling Collisions in the Setter” exercise from the lesson “Hash Maps: Python”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Computer Science

Complex Data Structures

FAQs on the exercise Handling Collisions in the Setter

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

#2

Minor point, but we’re asked to check if the key stored at an index is the same as the key argument passed to assign() before being instructed to save both key & value as a list, rather than just the value. I.e. at that point in the development of this class, there is no stored key.

4 Likes
#3

I spent a lot of time at that step, trying to figure out if I was missing something. Thanks for letting me known I was not the only one hehe

#4

You are right. We cannot address step.2 before step.3 since we don’t store [key, value] in step.2.

#5

I would say this is a major, not minor, point. I was stuck for a while trying to determine how to check for a key if there was no key saved.

#6

Why having different keys or none should write like this?

 if current_array_value is None:
  self.array[array_index] = [key, value]
  return

if current_array_value[0] == key:
  self.array[array_index] = [key, value]
  return

instead of value only, it saves key as well, but in the arrar_index should be only values. Why should we do that?

#7

The value is stored along with its key as a [key, value] pair so that the key is available to be compared against an incoming key to see if there is a collision.

The code you show inserts a given [key, value] pair in the index location if the location is empty, or over-writes the existing [key, value] pair if the key is the same as the incoming key.

If neither condition is true, i.e., if there is a collision between the existing key and the incoming, new key, a new array_index is calculated and used.

1 Like
#8

So, this is also the reason why the key in the array is in [0], and the value will be in the [1]?
thanks!