似乎我的代码运行不正常,每次我运行它时,似乎议程的关键值被我输入的下一个替换,而不是将其添加为新的。请帮助我找到为什么会发生这种情况以及如何解决它。谢谢!
def contactos():
q=int(raw_input("Desea agregar un contacto (1=si, 0=no): "))
while q==1:
a=raw_input("ingrese nombre contacto, telefono, mail (delimitados por espacio)")
d=a.split()
agenda={}
agenda[d[0]]= "nombre", d[0], "telefono: ", d[1], "mail :", d[2]
q=int(raw_input("Desea agregar otro contacto (1=si, 0=no): "))
print agenda.keys()
return agenda
答案 0 :(得分:0)
而不是分配,这将覆盖值
agenda[d[0]]= "nombre", d[0], "telefono: ", d[1], "mail :", d[2]
您必须append
agenda[d[0]].append(["nombre", d[0], "telefono: ", d[1], "mail :", d[2]])
答案 1 :(得分:0)
每次循环时,您都会将agenda
重置为空字典。在循环之前将初始化一次
def contactos():
agenda = {}
q=int(raw_input("Desea agregar un contacto (1=si, 0=no): "))
while q==1:
a=raw_input("ingrese nombre contacto, telefono, mail (delimitados por espacio)")
d=a.split()
agenda[d[0]]= "nombre", d[0], "telefono: ", d[1], "mail :", d[2]
q=int(raw_input("Desea agregar otro contacto (1=si, 0=no): "))
print agenda.keys()
如果您想为同一个名字添加多个电话号码和地址,请注意网络的答案。
答案 2 :(得分:0)
你应该/可以使用班级
https://docs.python.org/2/reference/datamodel.html
这是一个非常简单的例子
class contact:
def __init__(self, name="", phone="", mail=""):
self.phone = phone
self.name = name
self.mail = mail
a = contact("A name")
print a.name
a.mail = "test@gmail.com"
print a.mail