2016-06-03 1 views
1

Я пытаюсь создать контактную книгу с индексом «никнейм», которая позволяет пользователю сохранять имя, адрес и номер лица. Но я не совсем понимаю, как это сделать, используя словари, если бы у меня это было, я бы просто использовал список. Как создать «контактную книгу» в python с использованием словарей?

например
myList = [["Tom","1 Fairylane", "911"],["Bob","2 Fairylane", "0800838383"]] 

И потом, если я хотел бы видеть определенный контакт, я бы просто использовать некоторый код для поиска по шаблону. Но я просто не могу понять, как это сделать со словарем

ответ

3

Вы можете начать с этого:

my_dict = {"Tom": {"name": "Tom Jones", "address": "1 Fairylane", "phone": "911"}, 
      "Bob": {"name": "Bob Marley", "address": "2 Fairylane", "phone": "0800838383"} 
      } 

, то вы можете просто записи доступа с помощью

my_dict["Tom"]["name"] 

или

my_dict["Bob"]["phone"] 
+0

Да, это имеет смысл для меня, но проблема в том, что ключ должен быть «никнейм», а «имя» (полное имя «Tom Someone») является другим значением данных. Извините, я, возможно, не объяснил, что правильно – oneman

+0

Это не имеет значения. Вы можете добавить столько атрибутов во внутренний словарь. См. Мой обновленный ответ для примера. – Selcuk

2

Ключи в словаре уникальны. Так что если у вас есть список контактов без имени дважды вы можете использовать такой код:

contacts = {} 
contacts['Tom'] = ["1 Fairylane", 911] 
contacts['Bob'] = ["2 Fairylane", 0800838383] 

поэтому добавление данных в словарь на основе оператора [] доступа. Если вы хотите инициализировать словарь с готовыми данными, используйте следующий код:

contacts = {'Tom' : ["1 Fairylane", 911], 
      'Bob' : ["2 Fairylane", 0800838383]} 

доступ к определенному контакту работает следующим образом:

print(contacts['Tom']) 

Обратите внимание, если у вас есть второй, скажем, «Том», это не сработает. Вы должны были бы добавить дату рождения или фамилию или что-то, чтобы сделать его уникальным

2

Как уже упоминалось DomTomCat, вы можете установить ключ словаря как первое имя, а данные t содержащийся в списке. Следует отметить, что словари являются несортированными. Поэтому, пока они обеспечивают очень быстрый поиск (они по сути являются хеш-таблицей) для ключа, вам потребуется немного поработать, если вы хотите отобразить отсортированные подмножества результатов.