我正在尝试创建一个朋友字典,在其中我可以添加一个朋友并将他的信息放在那里。
我想使用朋友的名字作为钥匙,两个数字,两个电子邮件以及有关他的住处的信息。
我的问题是,当我要求输入数字和电子邮件时,我的程序崩溃了,我不知道自己做错了什么。
我使用了append函数,因为每个朋友的号码都保存在列表中。我不想要新的程序来修复我的程序,所以我可以理解为什么它失败了。
我想做的另一件事是不打印即时通讯创建的空字典,它里面有字典的列表(每个朋友都是字典),所以我想我应该说打印从位置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)
答案 0 :(得分:2)
您需要为电话和电子邮件创建一个列表,然后添加到列表:
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)
答案 1 :(得分:0)
解决方案的问题是您试图为不存在的事物增加价值。
当您联系[“电话”]时。这将在词典联系人中创建一个键。 {“电话”:} 但是问题是您确实要联系[“ phone”] [i]。因此,在此关键字中搜索第ith个元素。不存在。因此,您会出错。因此,您首先需要将列表添加到此字典中。然后只有您可以添加多个数字
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)