Python - Sintaxis de una lista

 
Vista:
Imágen de perfil de Marcos
Val: 4
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Sintaxis de una lista

Publicado por Marcos (2 intervenciones) el 25/05/2020 21:13:28
Saludos amigos.

Soy nuevo en Python y he estado en la web buscando ejercicios para practicar, en este momento estoy por el tema de Clases. Me he encontrado con un ejercicio que tiene una sintaxis para una lista que antes no habia visto en la teoria y me gustaria que ustedes me ayudaran a explicarla para poder entender que hace el programa en esa parte del codigo.

la linea es esta (esta en la linea 48 del codigo)

self.contactos.append({'nombre':nom,'telf':telf,'email':email})


lo que no entiendo es porque si self.contactos fue declarado como una lista (linea 6 del codigo), recibe parametros entre llaves..¿luego quien utiiza llaves no son los diccionarios?

Este es el codigo completo:

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# creamos nuestra clase agenda
class Agenda:
	# iniciamos nuestra clase
	def __init__(self):
		# crearemos una lista donde guardaremos los datos de nuestra agenda
		self.contactos=[]
 
	# menu del programa
	def menu(self):
		print()
		menu=[
			['Agenda Personal'],
			['1. Añadir Contacto',"anadir"],
			['2. Lista de contactos'],
			['3. Buscar contacto'],
			['4. Editar contacto'],
			['5. Cerrar agenda']
		]
 
		for x in range(6):
			print(menu[x][0])
 
		opcion=int(input("Introduzca la opción deseada: "))
		if opcion==1:
			self.anadir()
		elif opcion==2:
			self.lista()
		elif opcion==3:
			self.buscar()
		elif opcion==4:
			self.editar()
		elif opcion==5:
			print("Saliendo de la agenda ...")
			exit()
 
		# volvemos a llamar al menú
		self.menu()
 
 
	# función para añadir un contacto
	def anadir(self):
		print("---------------------")
		print("Añadir nuevo contacto")
		print("---------------------")
		nom=input("Introduzca el nombre: ")
		telf=int(input("Introduzca el teléfono: "))
		email=input("Introduzca el email: ")
		self.contactos.append({'nombre':nom,'telf':telf,'email':email})
 
 
	# función para imprimir la lista de contactos
	# En este caso imprimiremos solo los nombres de los contactos
	# con ellos podremos buscar luego un contacto
	def lista(self):
		print("------------------")
		print("Lista de contactos")
		print("------------------")
		if len(self.contactos) == 0:
			print("No hay ningún contacto en la agenda")
		else:
			for x in range(len(self.contactos)):
				print(self.contactos[x]['nombre'])
 
 
	# función para buscar un contacto a través del nombre
	def buscar(self):
		print("---------------------")
		print("Buscador de contactos")
		print("---------------------")
		nom=input("Introduzca el nombre del contacto: ")
		for x in range(len(self.contactos)):
			if nom == self.contactos[x]['nombre']:
				print("Datos del contacto")
				print("Nombre: ",self.contactos[x]['nombre'])
				print("Teléfono: ",self.contactos[x]['telf'])
				print("E-mail: ",self.contactos[x]['email'])
				return x
 
 
 
	# función para editar los datos de un contacto
	def editar(self):
		print("---------------")
		print("Editar contacto")
		print("---------------")
		data=self.buscar()
		condition=False
		while condition==False:
			print("Selecciona que quieres editar: ")
			print("1. Nombre")
			print("2. Teléfono")
			print("3. E-mail")
			print("4. Volver")
			option=int(input("Introduzca la opción deseada: "))
			if option==1:
				nom=input("Introduzca el nuevo nombre: ")
				self.contactos[data]['nombre']=nom
			elif option==2:
				telf=input("Introduzca el nuevo teléfono: ")
				self.contactos[data]['telf']=telf
			elif option==3:
				email=input("Introduzca el nuevo email: ")
				self.contactos[data]['email']=email
			elif option==4:
				condition=True
 
 
 
# bloque principal
agenda=Agenda()
agenda.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: 4
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

Sintaxis de una lista

Publicado por Xero (1 intervención) el 28/05/2020 01:58:29
Sucede que self.contactos=[] es una lista. Lo que significa que puede almacenar diferentes cosas, entre ellos, diccionarios.
Miremos el código:
self.contactos.append({'nombre':nom,'telf':telf,'email':email})

- Inicialmente la lista estará vacio:
[]
Ello ocurre por que no agregamos nada aún.

- La primera vez que agreguemos algo, la lista añadirá un diccionario: Si ingresáramos el primer contacto ( puede ser cualquiera) quedaría así.
[{"nombre": "Pedro", 'telf': "9989898", 'email': "[email protected]"}]

. La segunda vez, si agregamos otro contacto quedaría así:
[{"nombre": "Pedro", 'telf': "9989898", 'email': "[email protected]"}, {"nombre": "Jose", 'telf': "34234234234", 'email': "[email protected]"}]

Al final termina siendo una lista que contiene diccionarios.
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
Imágen de perfil de Marcos
Val: 4
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Sintaxis de una lista

Publicado por Marcos (2 intervenciones) el 28/05/2020 04:43:25
No sabia que una lista podia almacenar Diccionarios en su interior, ahora ya me queda mas claro el codigo. Mil gracias, he aprendido algo nuevo. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar