Как вы добавляете объекты в хэш-таблицу с именем объектов в качестве ключа?

#python #dictionary #hashtable

Вопрос:

Я относительно новичок в Python, и мне нужна помощь в реализации класса хэш-таблицы с использованием встроенного словаря Pythons и добавления объектов файла в хэш-таблицу и сохранения имен объектов в качестве ключа.

Я хочу прочитать свой файл(который содержит имена, номера телефонов и адреса электронной почты), создать объекты и добавить их в хэш-таблицу с именем в качестве ключа. Я попробовал это:

 with open("names.csv", "r") as names_file:  for line in names_file.readlines():  person = Person(line)  q = HashtableDict(1000)  q.store(key=person.name, data=person)  

Однако, похоже, это не работает при попытке поиска ключа(имени) с помощью метода find, что означает, что что-то пошло не так с сохранением объектов в хэш-таблице. Как это можно исправить?

Ответ №1:

Вы создаете хэш — таблицу для каждой строки в формате csv.

Вам нужно создать его только один раз

 q = HashtableDict(1000)  with open("names.csv", "r") as names_file:  for line in names_file.readlines():  person = Person(line)  q.store(key=person.name, data=person)  

Ответ №2:

Вы заново создаете новую HashtableDict для каждой строки в csv.

После всего цикла вы остаетесь с последним созданным HashtableDict как q . Он будет содержать только имя последнего человека.