Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
In [1]: #Un diccionario define una relación uno a uno entre claves y valor es. #Los diccionarios en Python son: # • heterogéneos: pueden contener elementos de distintos tipos # • mutables: sus elementos pueden modificarse # • sin orden: los elementos de un diccionario no tienen orden. dicc = { "clave1":234, "clave2":True, "clave3":"Valor 1", "clave4":[1,2,3,4] } print (dicc) type (dicc) In [2]: #Se accede a los valores del diccionario usando su clave print (dicc['clave1']) print (dicc['clave2']) print (dicc['clave3']) print (dicc['clave4']) In [3]: #Diccionario vacío dicc_vacio = dict() print (dicc_vacio) type (dicc_vacio) In [4]: #Diccionario vacío dicc_vacio = {} print (dicc_vacio) type (dicc_vacio) {'clave1': 234, 'clave2': True, 'clave3': 'Valor 1', 'clave4': [1, 2, 3, 4]} Out[1]: dict 234 True Valor 1 [1, 2, 3, 4] {} Out[3]: dict {} Out[4]: dict diccionarios about:srcdoc 1 de 6 21/8/21 12:09 In [5]: #Se puede cambiar un elemento del diccionario accediendo por su cl ave print (dicc) dicc["clave2"] = "nuevo" print (dicc) In [6]: #Longitud de un diccionario len(dicc) In [7]: #Operador in -- opera sobre las claves "clave2" in dicc In [8]: #Operador in -- opera sobre las claves "nuevo" in dicc In [9]: #Operador not in -- opera sobre las claves "nuevo" not in dicc In [10]: #Devuelve una lista de tuplas, cada tupla se compone de dos elemen tos: clave y valor. versiones = dict(python=2.7, siges=2.13, fact=5.1) versiones.items() In [11]: #Se puede iterar sobre los items del diccionario for clave, valor in versiones.items(): print (clave, valor) In [12]: #Devuelve la lista de claves versiones.keys() {'clave1': 234, 'clave2': True, 'clave3': 'Valor 1', 'clave4': [1, 2, 3, 4]} {'clave1': 234, 'clave2': 'nuevo', 'clave3': 'Valor 1', 'clave4': [1, 2, 3, 4]} Out[6]: 4 Out[7]: True Out[8]: False Out[9]: True Out[10]: dict_items([('python', 2.7), ('siges', 2.13), ('fact', 5.1)]) python 2.7 siges 2.13 fact 5.1 Out[12]: dict_keys(['python', 'siges', 'fact']) diccionarios about:srcdoc 2 de 6 21/8/21 12:09 In [13]: #Se puede iterar sobre las claves del diccionario for clave in versiones.keys(): print (clave) In [14]: #Se puede iterar sobre los valores del diccionario for valor in versiones.values(): print (valor) In [15]: #Generar una copia exacta de un diccionario versiones = dict(python=2.7, siges=2.13, fact=5.1) versiones2 = versiones.copy() print (versiones) print (versiones2) print (versiones == versiones2) In [16]: #Eliminar todos los elementos de un diccionario versiones.clear() print (versiones) In [17]: #Crear un diccionario con valores vacíos a partir de una secuencia de claves secuencia = ('python', 'siges', 'fact') versiones = dict.fromkeys(secuencia) print ("Nuevo diccionario: %s" % str(versiones)) In [18]: #Crear un diccionario con un valor determinado a partir de una sec uencia de claves versiones = dict.fromkeys(['a', 'b', 'c'], 1) print ("Nuevo diccionario: %s" % str(versiones)) In [19]: #El método get() devuelve el valor de un diccionario según su clav e versiones = dict(python=2.7, siges=2.13, fact=5.1) versiones.get('siges') python siges fact 2.7 2.13 5.1 {'python': 2.7, 'siges': 2.13, 'fact': 5.1} {'python': 2.7, 'siges': 2.13, 'fact': 5.1} True {} Nuevo diccionario: {'python': None, 'siges': None, 'fact': None} Nuevo diccionario: {'a': 1, 'b': 1, 'c': 1} Out[19]: 2.13 diccionarios about:srcdoc 3 de 6 21/8/21 12:09 In [20]: #El método pop obtiene un elemento del diccionario, quitándolo del mismo. versiones = dict(python=2.7, siges=2.13, fact=5.1) print (versiones.pop('python')) print (versiones) In [21]: #El método popitem() obtiene el último par clave y valor del dicci onario, quitándolo del mismo. versiones = dict(python=2.7, siges=2.13, fact=5.1) print (versiones.popitem()) print (versiones) In [22]: #El método popitem() da error si el diccionario está vacío versiones = dict(python=2.7, siges=2.13, fact=5.1) print ("VERSIONES =", versiones) print (versiones.popitem()) print ("VERSIONES =", versiones) print (versiones.popitem()) print ("VERSIONES =", versiones) print (versiones.popitem()) print ("VERSIONES =", versiones) print (versiones.popitem()) 2.7 {'siges': 2.13, 'fact': 5.1} ('fact', 5.1) {'python': 2.7, 'siges': 2.13} VERSIONES = {'python': 2.7, 'siges': 2.13, 'fact': 5.1} ('fact', 5.1) VERSIONES = {'python': 2.7, 'siges': 2.13} ('siges', 2.13) VERSIONES = {'python': 2.7} ('python', 2.7) VERSIONES = {} ------------------------------------------------------------------ --------- KeyError Traceback (most recent c all last) <ipython-input-22-d827430ca7d6> in <module> 8 print (versiones.popitem()) 9 print ("VERSIONES =", versiones) ---> 10 print (versiones.popitem()) KeyError: 'popitem(): dictionary is empty' diccionarios about:srcdoc 4 de 6 21/8/21 12:09 In [23]: #El método setdefault() actúa de 2 maneras: # 1) Si la clave existe, es similar a get(clave) donde retorna el valor de la clave. # 2) Si la clave no existe, la agrega al diccionario con el valor default indicado y retorna dicho valor # El formato es setdefault(key, [, default_value]) versiones = dict(python=2.7, siges=2.13, fact=5.1) print (versiones.setdefault('python')) print (versiones) print (versiones.setdefault('python2', 3.8)) print (versiones) print (versiones.setdefault('python3')) print (versiones) # Notar que en este caso a 'python3' le sete a un valor None In [24]: #El método update() actualiza un diccionario agregando los pares d e clave y valores en un #segundo diccionario. versiones1 = dict(python=2.7, siges=2.13, fact=5.1) versiones2 = dict(python2=3.8) versiones1.update(versiones2) print (versiones1) In [25]: #Para comparar dos diccionarios versiones1 = dict(python=2.7, siges=2.13, fact=5.1) versiones2 = dict(python=2.7, siges=2.13, fact=5.1) print (versiones1) print (versiones2) print (versiones1 == versiones2) versiones2["python"] = 3.8 print (versiones1) print (versiones2) print (versiones1 == versiones2) 2.7 {'python': 2.7, 'siges': 2.13, 'fact': 5.1} 3.8 {'python': 2.7, 'siges': 2.13, 'fact': 5.1, 'python2': 3.8} None {'python': 2.7, 'siges': 2.13, 'fact': 5.1, 'python2': 3.8, 'pytho n3': None} {'python': 2.7, 'siges': 2.13, 'fact': 5.1, 'python2': 3.8} {'python': 2.7, 'siges': 2.13, 'fact': 5.1} {'python': 2.7, 'siges': 2.13, 'fact': 5.1} True {'python': 2.7, 'siges': 2.13, 'fact': 5.1} {'python': 3.8, 'siges': 2.13, 'fact': 5.1} False diccionarios about:srcdoc 5 de 6 21/8/21 12:09 In [26]: #La función zip() genera un diccionario relacionando cada elemento del primer iterable #con los valores del segundo iterables, ambos pasados como parámet ro. #Ambos deben tener el mismo número de elementos. dicc = dict(zip('abcd',[1,2,3,4])) dicc In [27]: #Convertir varias listas a un diccionario moneda = ("Bitcoin", "Peso", "Dolar") codigo = ("BTC", "ARS", "USD") valores = (1111, 2222, 3333) print (dict(zip(moneda, codigo))) In [28]: resultado = zip(moneda, codigo, valores) print (tuple(resultado)) In [29]: #Eliminar un elemento del diccionario versiones = dict(python=2.7, siges=2.13, fact=5.1, django=3.0) del versiones["django"] print (versiones) In [ ]: In [ ]: Out[26]: {'a': 1, 'b': 2, 'c': 3, 'd': 4} {'Bitcoin': 'BTC', 'Peso': 'ARS', 'Dolar': 'USD'} (('Bitcoin', 'BTC', 1111), ('Peso', 'ARS', 2222), ('Dolar', 'USD', 3333)) {'python': 2.7, 'siges': 2.13, 'fact': 5.1} diccionarios about:srcdoc 6 de 6 21/8/21 12:09
Compartir