Python - Funciones para eliminar y editar elementos de una lista dentro de un diccionario

 
Vista:
sin imagen de perfil

Funciones para eliminar y editar elementos de una lista dentro de un diccionario

Publicado por Xavier (1 intervención) el 01/05/2018 18:55:54
Hola, estoy realizando una agenda en donde se pide:
Agregar contacto
Buscar contacto
Editar contacto
Eliminar contacto
Ya tengo las funciones de agregar y buscar, pero se me dificulta un poco editar y eliminar
¿Como lo debería de hacer?
Lo que quiero hacer es poder eliminar por nombre de contacto y editar por nombre de contacto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
listacontacto=[]
contacto = {}
def listar ():
    for cont in listacontacto:
        print (cont["nombre"],"-",cont["celular"],"-",cont["correo"],"-",cont["direccion"],"-",cont["cumpleaños"])
def agregar():
    contacto = {}
    contacto ["nombre"] = input ("Ingrese nombre:")
    contacto ["celular"] = input ("Ingrese celular:")
    contacto ["correo"] = input ("Ingrese correo:")
    contacto ["direccion"] = input ("Ingrese direccion:")
    contacto ["cumpleaños"] = input ("Ingrese fecha de nacimiento:")
    listacontacto.append(contacto)
 
def buscarnombre(nombrebuscar):
    for cont in listacontacto:
        if (cont["nombre"]== nombrebuscar):
            print (cont["nombre"],"-",cont["celular"],"-",cont["correo"],"-",cont["direccion"],"-",cont["cumpleaños"])
def buscarcorreo(correobuscar):
    for cont in listacontacto:
        if (cont["correo"]== correobuscar):
            print (cont["nombre"],"-",cont["celular"],"-",cont["correo"],"-",cont["direccion"],"-",cont["cumpleaños"])
 
def editar():
 
 
 
def menu():
 while (True):
    print("--------------------")
    print("       Agenda       ")
    print("1.-Agregar contacto:")
    print("2.-Buscar contacto:")
    print("3.-Editar contacto:")
    print("4.-Eliminar contacto:")
    print("5.-Listar contactos")
    print("6.-Salir")
    while (True):
        op = input("Digite una opcion:")
        if(op!=""):
            break
 
    if (op == "1"):
        agregar()
    elif (op == "2"):
        print ("1.-Buscar por nombre:")
        print("2.-Buscar por correo")
        op1 = input ("Digite opcion:")
        if (op1=="1"):
            nombrebuscar=input ("Nombre:")
            buscarnombre(nombrebuscar)
        elif (op1=="2"):
            correobuscar=input ("Correo:")
            buscarcorreo(correobuscar)
 
 
    elif (op == "3"):
        editar()
    elif (op == "4"):
 
    elif( op == "5"):
        listar()
    elif (op == "6"):
        break
 
menu()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Funciones para eliminar y editar elementos de una lista dentro de un diccionario

Publicado por tincopasan (1082 intervenciones) el 09/04/2020 06:52:41
hola:
es raro que en tu planteo tengas parte de la respuesta y no la apliques.
te recomendaría que no edites ni elimines por nombre, ya que un nombre es factible que se repita, sería mejor usar un identificador único o en todo caso usando el telefono
en cuanto a las funciones te muestro un ejemplo, usando como ya te dije lo que has planteado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
listacontacto=[{"nombre":"yo","celular":"155","correo":"tin","direcc":"mi casa"},{"nombre":"el","celular":"156","correo":"tan","direcc":"su casa"}]
 
 
def editar(nombre):
    for cont in listacontacto:
        if (cont["nombre"]== nombre):
            cont ["nombre"] = input ("Ingrese nuevo nombre:")
 
def eliminar(nombre):
    for cont in listacontacto:
        if (cont["nombre"]== nombre):
            listacontacto.remove(cont)
 
 
 
print(listacontacto)
editar("el")
eliminar("yo")
print(listacontacto)

adaptalo y terminalo, no tengo ganas de escribir.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar