Добавить к значениям в списке внутри словаря с добавлением - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь создать словарь друга, в который я могу добавить друга и поместить туда его информацию.

Я хочу использовать имя друга в качестве ключа, два числа, два электронных письма и информацию огде он живет.

Моя проблема в том, что моя программа вылетает при запросе номеров и электронных писем, я не знаю, что я сделал не так.

Я использовал функцию добавления, потому что номера каждого другасохраняется в списке.Я не хочу новую программу, которую я хочу починить, чтобы понять, почему она не работает.

Другая вещь, которую я пытаюсь сделать, это не печатать пустой словарь, который я создаю в конце, его список с dictionaris в нем (каждый друг - словарь), так что, я думаю, я должен сказатьраспечатать список с позиции 1 до конца, но я думаю, что есть лучший способ, здесь я публикую свой код, ошибка, когда я спрашиваю первый и второй телефон и почту.

def add_contact(friends):
    contact = {}
    contact["name"]=input("name: ")
    for i in range(2):
        contact["phone"][i]=input("phone: ") #Here it crashes
    for i in range(2):
        contact["mail"][i]=input("mail: ") #Here too

    contact["street"]=input("street: ")
    contact["housenum"]=input("housenum: ")
    contact["cp"]=input("cp: ")
    contact["city"]=input("city: ")
    friends.append(contact)

friends = [{"name":[{"telf":[0]*2},{"mail":[0]*2}, 
{"street":"","housenum":"","cp":"", "city":""}]}] #This is the list im creating to fill it with friends information, the first dictionary in the list is an empty dictionary which i dont want to print.
add_contact(friends)
print(friends)

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Проблема с вашим решением состоит в том, что вы пытаетесь повысить ценность чего-то, чего нет.

Когда вы связываетесь с ["телефоном"].Это создает ключ внутри словарного контакта.{"Телефон":} Но проблема в том, что вы связываетесь с ["телефоном"] [i].Итак, i-й элемент ищется в этом ключе.Которого нет.Следовательно вы получаете ошибку.Поэтому сначала вам нужно добавить список в этот словарь.Только тогда вы можете добавить несколько номеров

def add_contact(friends):
    contact = {}
    contact["name"]=input("name: ")
    contact["phone"] = []
    contact["mail"] = []
    for i in range(2):
        contact["phone"].append(input("phone: "))
    for i in range(2):
        contact["mail"].append(input("mail: "))

    contact["street"]=input("street: ")
    contact["housenum"]=input("housenum: ")
    contact["cp"]=input("cp: ")
    contact["city"]=input("city: ")
    friends.append(contact)

friends = [{"name":[{"telf":[0]*2},{"mail":[0]*2}, 
{"street":"","housenum":"","cp":"", "city":""}]}] #This is the list im creating to fill it with friends information, the first dictionary in the list is an empty dictionary which i dont want to print.
add_contact(friends)
print(friends)
0 голосов
/ 01 декабря 2018

Вам необходимо создать список для телефона и электронной почты, затем добавить к нему:

def add_contact(friends):
    contact = {}
    contact["name"]=input("name: ")
    contact["phone"] = []
    contact["mail"] = []
    for i in range(2):
        contact["phone"].append(input("phone: "))
    for i in range(2):
        contact["mail"].append(input("mail: "))

    contact["street"]=input("street: ")
    contact["housenum"]=input("housenum: ")
    contact["cp"]=input("cp: ")
    contact["city"]=input("city: ")
    friends.append(contact)

friends = [{"name":[{"telf":[0]*2},{"mail":[0]*2}, 
{"street":"","housenum":"","cp":"", "city":""}]}] #This is the list im creating to fill it with friends information, the first dictionary in the list is an empty dictionary which i dont want to print.
add_contact(friends)
print(friends)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...