#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
. Он будет содержать только имя последнего человека.