1+ # #03 ESTRUCTURAS DE DATOS
2+
3+
4+ ## Ejercicio
5+ #- Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
6+ #- Utiliza operaciones de inserción, borrado, actualización y ordenación.
7+
8+ ### LISTAS
9+
10+ nombres = ['Alberto' , 'Ana' , 'Laura' , 'Teresa' , 'Carmen' , 'Daniel' ]
11+ print (type (nombres ))
12+
13+ varios = ['Hola' , 150 , True ]
14+ print (type (varios ))
15+
16+ print (nombres [2 ])
17+ print (nombres [- 1 ])
18+ print (type (varios [1 ]))
19+
20+ nombres [3 :4 ] = ['Maria Teresa' , 'MariCarmen' ]
21+ print (nombres )
22+
23+ nombres .append ('Leo' )
24+ print (nombres )
25+
26+ nombres .extend (["Angel" , "Pablo" ])
27+ print (nombres )
28+
29+ nombres .remove ('Ana' )
30+ print (nombres )
31+
32+ nombres .insert (1 , 'Maria' )
33+ print (nombres )
34+
35+ nombres .pop (5 )
36+ print (nombres )
37+
38+ nombres .sort ()
39+ print (nombres )
40+
41+ clasificacion = [10 ,7 ,5 ,3 ,1 ,3 ]
42+ print (clasificacion .count (3 ))
43+
44+ print (clasificacion .index (3 ))
45+
46+ print ('8' in clasificacion )
47+
48+ nombres .clear ()
49+ print (nombres )
50+
51+ ## TUPLAS
52+
53+ colores = ("azul" , "verde" , "rojo" , "negro" )
54+ numero = (2 ,)
55+
56+ print (type (numero ))
57+ print (type (colores ))
58+ print (colores [0 ])
59+ print (colores [- 1 ])
60+ print (colores .index ('verde' ))
61+ print (colores .count ('azul' ))
62+ print ('rojo' in colores )
63+
64+ ## SETS
65+
66+ pesos1 = {22 , 66 , 25 }
67+ pesos2 = set ([85 ,55 ,96 ,47 ,122 ])
68+ print (pesos2 )
69+ print (type (pesos1 ))
70+ print (pesos1 .intersection (pesos2 ))
71+
72+ pesos2 .add (77 )
73+ print (pesos2 )
74+
75+ pesos2 .remove (122 )
76+ print (pesos2 )
77+
78+ pesos2 .discard (51 )
79+ print (pesos2 )
80+
81+ pesos2 .pop ()
82+ print (pesos2 )
83+
84+ pesos2 .clear ()
85+ print (pesos2 )
86+
87+ ## DICCIONARIO
88+
89+ usuario = dict ([
90+ ('nombre' , 'Juan' ),
91+ ('edad' , 25 ),
92+ ('ciudad' , 'Bogota' )
93+ ])
94+ ciudades = {'Alberto' :'Sevilla' , 'Laura' :'Granada' , 'Toni' :'Madrid' }
95+ print (usuario )
96+
97+ ciudades .popitem ()
98+ print (ciudades )
99+ print (ciudades ['Alberto' ])
100+
101+ usuario2 = {'telefono' :658987412 }
102+ usuario .update (usuario2 )
103+ print (usuario )
104+
105+ usuario .pop ('edad' )
106+ print (usuario )
107+
108+ ciudades = sorted (ciudades .items ())
109+ print (ciudades )
110+
111+ ciudades .clear ()
112+ print (ciudades )
113+
114+ # DIFICULTAD EXTRA (opcional):
115+ # Crea una agenda de contactos por terminal.
116+ # - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
117+ # - Cada contacto debe tener un nombre y un número de teléfono.
118+ # - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
119+ # los datos necesarios para llevarla a cabo.
120+ # - El programa no puede dejar introducir números de teléfono no númericos y con más de 11 dígitos.
121+ # (o el número de dígitos que quieras)
122+ # - También se debe proponer una operación de finalización del programa.
123+ # - El programa debe mostrar la agenda de contactos al finalizar.
124+
125+ def mi_agenda ():
126+
127+ def insert_contact ():
128+ phone = input ("\n Introduce el telefono del contacto: " )
129+ if phone .isdigit () and len (phone ) > 0 and len (phone ) <= 11 :
130+ agenda [name ] = phone
131+ else :
132+ print ("El telefono no es correcto, puede que tenga mas de 11 digitos" )
133+
134+ agenda = {}
135+ while True :
136+
137+ print ('1. Buscar contacto' )
138+ print ('2. Insertar contacto' )
139+ print ('3. Actualizar contacto' )
140+ print ('4. Eliminar contacto' )
141+ print ('5. Salir' )
142+
143+ option = input ("\n Selecciona una opcion: " )
144+
145+ match option :
146+ case '1' :
147+ name = input ('\n Introduce el nombre del contacto que desea buscar: ' )
148+
149+ if name in agenda :
150+ print (f"El número de telefono de { name } es { agenda [name ]} ." )
151+ else :
152+ print ('\n No hay contactos con ese nombre' )
153+
154+ case '2' :
155+ name = input ("\n Introduce el nombre del contacto: " )
156+ insert_contact ()
157+
158+ case '3' :
159+ name = input ("\n Introduce el nombre del contacto que desea actualizar: " )
160+ if name in agenda :
161+ insert_contact ()
162+ else :
163+ print ('\n No hay contactos con ese nombre' )
164+
165+ case '4' :
166+ name = input ("\n Introduce el nombre del contacto que desea eliminar: " )
167+ if name in agenda :
168+ del agenda [name ]
169+ else :
170+ print ('\n No hay contactos con ese nombre' )
171+
172+ case '5' :
173+ print ('Saliendo de la agenda.' )
174+ break
175+ case _:
176+ print ("Opción no válida. Por favor, selecciona una opción válida." )
177+
178+ mi_agenda ()
0 commit comments