No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Diccionarios: inserción y actualización

29/37
Recursos

Aportes 53

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Aqui les dejo un link por si quieren ver otros metodos de los diccionarios

https://www.w3schools.com/python/python_dictionaries_methods.asp

Les compato un json de harry potter que sirve como diccionario.

https://github.com/Laboratoria/LIM011-data-lovers/blob/master/src/data/potter/potter.json

DATA2=  {
    "name": "Harry Potter",
    "species": "human",
    "gender": "male",
    "house": "Gryffindor",
    "dateOfBirth": "31-07-1980",
    "yearOfBirth": 1980,
    "ancestry": "half-blood",
    "eyeColour": "green",
    "hairColour": "black",
    "wand": {
      "wood": "holly",
      "core": "phoenix feather",
      "length": 11
    } 

El json tiene más datos.

Profe, profe, yo soy su alumno sexagenario y docente ya por 35 años casi, en estas áreas. Muchas gracias por su maravilloso carisma como docente, y estoy aprendiendo mucho de los nuevos entornos didácticos.
Me va a servir mucho el tema de los diccionarios, antes de meterme a cosas mas densas como los dataframes.
Un saludo y espero que se coma un delicioso pavo estas Navidades.
Desde Guatemala, su amigo y servidor, Humberto.

Que maravilla que son los diccionarios, las listas y las tuplas. Es aquí cuando comienza todo.

print("--- "*5)
person= {
  'name': 'Camilo',
  'last_name': 'Rico',
  'langs': ['python', 'javascript'],
  'age': 99
}

print(person)

person['name']='Camilo Andres'
person['age']-=50
person['langs'].append('rust')
print(person)
del person['last_name']
person.pop('age')
print(person)


print(person.items())
print(person.keys())
print(person.values())
print(person.clear())

Los diccionarios en Python nos permiten almacenar una serie de mapeos entre dos conjuntos de elementos, llamados keys and values (Claves y Valores).

Mi aporte, mi diccionario se alimenta de inputs.


#ingreso todos los valores

nombre = input("Digite su nombre: ")
nombre = nombre.upper()

apellidos = input("Digite sus apellidos: ")
apellidos = apellidos.upper()

cursos = input("cursos tomados separado por comas: ")
cursos = cursos.upper()
cursos = cursos.split(",") # creo la lista a partir del delimitador

ciudad = input("digite ciudad de residencia: ")
ciudad = ciudad.upper()

#creo el diccionario con mis entradas
person = {
  "name": nombre,
  "apellido": apellidos,
  "skills": cursos,
  "ciudad": ciudad
}

print(person)

person["nombre"] = "zacarias" # edito la llave nombre
person["skills"].append("Tableau") # como es una lista, puedo agregar al final este valor 
del person["apellido"] # del sirve para eliminar una clave

print(person)

print("aqui vamos con 3 metodos")
print(person.items()) # organiza en tuplas mis conjuntos de clave-valor
print(person.keys()) # muestra solo las claves
print(person.values()) # muestra solo los valores

#borrar todo
person.clear()
print(person)

Amigos, por si les funciona (y no lo sabían) poner el comando ‘clear’ dentro de Shell también limpia la consola.

Muy interesante el módulo de Listas y Diccionarios! Vamos por más 💚

Les comparto el código de la clase.

# Diccionarios: inserción y actualización

person = {
  "name": "Sara",
  "last_name": "Mejia",
  "langs": ["Python", "JavaScript"],
  "age": 30
}

print(person)

person["name"] = "Nico"
print(person)

person["age"] += 20
print(person)

person["langs"].append("Rust")
print(person)

# Eliminar atributo de un diccionario
del person["last_name"]

# Con los diccionarios siempre debo enviar la llave a eliminar
person.pop("age") 
print(person)

# Devuelve los pares clave:valor en forma de tupla
print("items")
print(person.items())

# Devuelve una lista con los atributos o keys del diccionario
print("keys")
print(person.keys())

# Devuelve una lista solo con los valores del diccionario
print("values")
print(person.values())

# Eliminar un elemento específico de una lista dentro del diccionario
index = person["langs"].index("JavaScript")
print(index)

person["langs"].pop(index)
print(person)

Formato más agradable con biblioteca json

import json

person = {
    'name': "bla bla bla",
    'las_name': 'Nicolas',
    'langs': ['python', 'javascript'],
    'age': 87
}

print(json.dumps(person, indent=1))

En un diccionario ppal es posible tener listas y también diccionarios.

Aquí unas formas de trabajarlos

DATA2={
    "name": "Harry Potter",
    "species": "human",
    "gender": "male",
    "house": "Gryffindor",
    "dateOfBirth": "31-07-1980",
    "yearOfBirth": 1980,
    "ancestry": "half-blood",
    "eyeColour": "green",
    "hairColour": "black",
    "wand": {
      "wood": "holly",
      "core": "phoenix feather",
      "length": 11
    },
    "patronus": ["stag",'Fox'],
    "hogwartsStudent": True,
    "hogwartsStaff": False,
    "actor": "Daniel Radcliffe",
    "alive": True,
    "image": "https://hp-api.herokuapp.com/images/harry.jpg"
  }

#Agregando un dato a un diccionario que esta en un diccionario ppal
print(DATA2['wand']['core'])
DATA2['wand']['core']+= ' dragon heartstring'
print(DATA2['wand']['core'])

#agregando un valor a una lista que esta en un diccionario ppal
print(DATA2['patronus'])
DATA2["patronus"].append('cat')
print(DATA2['patronus'])

#eliminar un par clave, valor de una lista que esta en un diccionario ppal
del DATA2["actor"]
DATA2.pop('gender')
print(DATA2)

#Obtener items de un diccionario
print('')
print('Items')
print(DATA2.items())

#Imprime las keys del diccionario
print('')
print('keys')
print(DATA2.keys())


#imprime las keys del diccionar que esta en un diccionar ppal
print('')
print('keys of dict in dict')
print(DATA2["wand"].keys())

#Imprime los values  del diccionario
print('')
print('values')
print(DATA2.values())


#imprime las keys del diccionar que esta en un diccionar ppal
print('')
print('values of dict in dict')
print(DATA2["wand"].values())

Les comparto mis apuntes:

Python tiene un conjunto de métodos integrados que pueden ser usar en los diccionarios:

  • clear() --> Elimina todos los elementos del diccionario
  • copy() --> Devuelve una copia del diccionario
  • fromkeys() --> Devuelve un diccionario con las claves y el valor especificados
  • get() --> Devuelve el valor de la clave especificada
  • items() --> Devuelve una lista que contiene una tupla para cada par de valores clave
  • keys() --> Devuelve una lista que contiene las claves del diccionario
  • pop() --> Elimina el elemento con la clave especificada
  • popitem() --> Elimina el último par clave-valor insertado
  • setdefault() --> Devuelve el valor de la clave especificada. Si la clave no existe: inserte la clave, con el valor especificado
  • update() --> Actualiza el diccionario con los pares clave-valor especificados
  • values() --> Devuelve una lista de todos los valores en el diccionario

Hola PlatziNautas Comparto el ejercicio realizado en clase

#dentro de un diccionario se pueden tener varios tipos de datos
person = {
  'name': 'nico',
  'last_name': 'molina',
  'langs': ['python', 'javascript'],
  'age': 99
}

print(person)

# ['nombre de la propiedad'] con esto podemos modificar el valor del objeto
person['name'] = 'santi'
# -= 50 se utilizo para restarte al valor de la edad
person['age'] -= 50
# .append se le agrega al array para que este agrege en el ultimo lugar
person['langs'].append('rust')
print(person)

# del se utiliza para borrar lo que querramos
del person['last_name']
# .pop se utiliza para eliminar algo puntualmente a diferencia de en las listas
person.pop('age')

print(person)

# items nos envia los datos en tuplas, fraccionados segun los tengamos organizados
print('items')
print(person.items())

#keys nos devuelve los atributos principales
print('keys')
print(person.keys())

#values solo devuelve los valores que hay
print('values')
print(person.values())

También se puede hacer un loop dentro del diccionario para imprimir los valores:

for items in persons. items ():
print (items)

for values in persons. values ():
print (values)
for keys in persons. keys ():
print (keys)

pop: Siempre te va a devolver el elemento eliminado. Solo se puede utilizar en listas.
del: Este no devuleve nada. Se puede utilizar con objetos mutables.

Principales características:

  1. Un diccionario es una estructura de datos que permite asociar una clave a un valor.
  2. Los índices en los diccionarios pueden ser de casi cualquier tipo en Python.
  3. Los diccionarios son estructuras de datos mutables (agregar, modificar, eliminar)los elementos en tiempo de ejecución.
  4. Se puede acceder a los valores solo a través de las claves, no de los índices.
  5. Las claves en los diccionarios deben ser únicas no se pueden tener dos elementos con la misma clave en un diccionario.

my_dict ={}
print(type(my_dict))

my_dict = {
‘avion’: ‘vuela vuelaaaaaa’,
‘name’:‘Viviana’,
‘last_name’: ‘Isa’,
‘age’: 73
}
print(my_dict)
#elementos de ese diccionario
print(len(my_dict))
#pregunto directamente por los datos
print(my_dict[‘age’])
print(my_dict[‘name’])
print(my_dict.get(‘last_name’))
print('avion’in my_dict)
print('sssss’in my_dict)

person = {
  'name': 'Karen',
  'last_name': 'Gomez',
  'langs': ['python','javascript'],
  'age': 24
}

print(person)
#Actualizacion
person['name'] = 'Andrea'
person['age'] -= 2
#Agregar valor
person['langs'].append('rust')
print(person)

#metodos para eliminar
del person['last_name']
person.pop('age')
print(person)

#obtener items
print('items')
print(person.items())

#keys
print('keys')
print(person.keys())

#values
print('values')
print(person.values())

Acceso a los elementos de un diccionario con los atributos: .items() .keys() .values()

""" Dictionary v2 """
person = {
  "name": "Regulus",
  "last_name": "Novachrono",
  "lang": ["python", "java", "SQL"],
  "age": 38,
  "skills": ["math", "logic", "english", "good guy"],
  100: True
}
print("person =", person)
print('person["name"] = "Isla"')
person["name"] = "Isla"
print("person =", person)
print("-" * 35)

print('person["age"] += 5')
person["age"] += 5
print("person =", person)
print("-" * 35)

print("person['lang'].append('c++')")
person["lang"].append("c++")
print("person =", person)
print("-" * 35)

print('del person[100]')
del person[100]
print("person =", person)
print("-" * 35)

print("person.pop('last_name')")
person.pop('last_name')
print("person =", person)
print("-" * 35)

# keys values items
things = {
  "name": "Dolores",
  "last_name": "Crimson",
  "age": 24
}
print("things =", things)
print("things.keys() =>", things.keys())
print("things.values() =>", things.values())
print("things.items() =>", things.items())

Hola les comparto mi codigo comentado

#diccionario
#https://www.programiz.com/python-programming/methods/dictionary

# la siguiente estructura de datos es muy comun
person = {
  'name': 'Luis', #importante las comas para separar los valores del diccionario
  'last_name': 'Bolaños',
  'langs': ['python', 'javascript'],
  'age': 99
}

print( 'diccionario "person" sin modificar: ' , person)

person['name'] = 'santi'
person['age'] -= 50 #hace una resta, el valor que tiene guardado el diccionario (100), menos el valor que le quitas (50)
print('-'*20)
print( 'diccionario "person" resta en edad: ' , person)
person['langs'].append('rust') #al diccionario "person", se le agrega rust, en langs
print('-'*20)
print( 'diccionario "person" con lenguage agregado' , person)
print('-'*20)

del person['last_name'] #elimina last_name
person.pop('age') #el metodo pop, elimina la edad, a pop se le tiene que decir especificamente que llave se quiere eliminar, si no le pones nada en los parentesis te va a mandar un error

print(person)
print('-'*20)

print('items') 
print(person.items()) #devulve el valor en forma de tupla, no puede ser modificado

print('keys') 
print(person.keys()) #devuelve las "llaves" en donde donde guardas los datos, como 'name' o 'lags'

print('values')
print(person.values()) #imprime los valores del diccionario
 

Resumen de la clase 😊💚

pokemon = {
    'nombre': 'Bulbasaur',
    'tipo': ['Planta', 'Veneno'],
    'evolucion': ['Ivasaur', 'Venusaur'],
    'ataques': ['Latigo Cepa', 'Hoja Afilada', 'Hiedra Adormidera'],
    'poder': 70,
    'vida': 100
}
print(pokemon)

#Actualizando el diccionario
pokemon['poder'] += 10
print(pokemon) #'poder': 80
pokemon['ataques'].append('Embestir')
print(pokemon) #'ataques': ['Latigo Cepa', 'Hoja Afilada', 'Hiedra Adormidera', 'Embestir']
del pokemon['ataques'] #Elimina la llave indicada
print(pokemon) 
pokemon.pop('vida') #Elimina la llave indicada
print(pokemon)
pokemon['tipo'].pop(1) #Elimina un elemento especifico de la llave que indiques
print(pokemon)

#devuelve en una lista en pares de tuplas, los pares clave:valor
print(pokemon.items())
#devuleve solo las llaves o atributos del diccionario
print(pokemon.keys())
#devuleve una lista pero solo de los valores
print(pokemon.values())
####

nombre = input('ingresa el nombre del pokemon: ')
tipos = input('introduce el tipo o tipos, si es mas de  uno lo separas por comas: ')
tipos = tipos.split(",")#se crea la lista con delimintador
lugarDeCaptura = input('introduce el lugar donde lo capturaste: ')

##se crea el diccionarios con los datos

datos = {
    'nombre': nombre,
    'tipos':tipos,
    'lugar de captura':lugarDeCaptura
}

print(datos)


##metodos

print(datos.keys())##muestra las llaves
print(datos.items()) ##muestra en tuplas los conjuntos de llave.valor
print(datos.values()) ##muestra solo los valores


ejemplo

if __name__ == '__main__':
    curso = {
    'nombre': '30 días de Python',
    'duración': '20 horas',
    'clases': 100,
    'detalles': {
        'tecnologias': ['Python', 'Flask', 'Django'],
        'calificacion': 5,
    },
    'comentarios': ['¡Excelente curso!', 'Python es poderoso', 'Hola'] }

    print("1. Acceder a los valores de un diccionario...\n\n entre corchetes ['dictionaryname']")

    print(curso['nombre']) 
    print(curso['detalles']) 


    print("\n\n2. Uso de la funcion lambda...\n\nmensaje:")
    coche = {
    'marca': 'Toyota',
    'encender': lambda: print('El coche ha sido encendido')}
    
    coche['encender']()           
    # "El coche ha sido encendido")

Les comparto una funcion para que el print del dictionary tenga un visual ordenado.

import json

def dicFormat(data):
    return  json.dumps(data, indent=2)

person = {
    'name': "MyName",
    'last_name': "MyLastName",
    'langs': ['JavaScript','Python'],
    'age': 100
}
print(person)
print(dicFormat(person))

Si quieren dar un poco de formato con \n pueden hacer un salto de línea como en otros lenguajes. ejemplo

print ('\n', person, '\n')

No se que tanto uso tengan en el desarrollo y por que no se tocaron en este curso. Pero también existe otra estructura llamada Set, se declara con las llaves igual que un diccionario pero almacena solo valores. Esta estructura no esta indexada, ni almacena elementos repetidos.

set = {1,2,3,4,5}

yo estaba intentando imprimir pero puse print donde person me tiraba error ,pero al final de cuenta verifique bien y se corrigio

# Dictionary

person = {
    'name': 'Rocio',
    'Last_name': 'Molina',
    'langs': ['Python', 'JS'],
    'age': 99,
    'carreer': ('ad_empresas', 'accounting'),
    'married': True
}
print(person)

# update dict
person['name'] = 'Rochi'
person['age'] -= 62
person['langs'].append('kotlin')
print(person)

# delete keys  dictionary
del person['Last_name']
person.pop('age')
print(person)

# Dictionary methods https://www.w3schools.com/python/python_dictionaries_methods.asp

print(f'ITEMS \n', person.items())
print(f'KEYS \n', person.keys())
print(f'VALUES \n', person.values())

Que montón de archivos 😅 pero bueno, todo se entiende.

my_dict ={}
print(type(my_dict))

my_dict = {
‘avion’: ‘gshdhjdkflkgl’,
‘name’:‘Jorge’,
‘last_name’: ‘Varas’,
‘age’: 34
}
print(my_dict)
print(len(my_dict))
print(my_dict[‘age’])
print(my_dict[‘name’])
print(my_dict.get(‘last_name’))

persona = {

“nombre”: “camilo”,
“apellido”: “salazar”,
“programacion”: [“python” , “javascript”],
“edad”: 22
}
print(persona)

#Actualizar los nombres y edades con strings y numeros

persona[“nombre”] = "juan"
persona[“edad”] -= 2
print(persona)

#agregar mas elementos

persona[“programacion”].append(“Go”)
print (persona)

#del delete sirve para eliminar registros

del persona [“apellido”]
persona.pop(“age”)

print(persona)

#items nos agrupa la tupla
print(“items”)
print(persona.items())

#devuelve solo las llaves
print(“keys”)
print(persona.keys())

#devuelve los valores
print(“values”)
print(persona.values())

person = {
  'name': 'nico',
  'last_name': 'sanchez',
  'langs': ['python', 'JS'],
  'age': 22
}

print(person)

person['name'] = 'santi'
person['age'] -= 2
person['langs'].append('rust')
print(person)

del person['last_name']
person.pop('age')
print(person)
print('items')
print(person.items())

print('keys')
print(person.keys())

print('values')
print(person.values())

En lo personal, me gusta usar este recurso para ver los diferentes métodos en los diccionarios de python y cómo se usan

Programiz

Se me ocurre que .py trabaja similar a .sh

person={
‘name’: ‘Johnny’,
‘Last_name’: ‘Fernandez’,
‘langs’ : [‘python’, ‘javascript’,‘HTML’],
‘age’ : 52
}
print(person)
person[‘name’] = 'Facundo’
print(person)
person [‘age’] -=20
person[‘langs’].append(‘css’)
print(person)
del person[‘name’]
person.pop (‘age’)
print(person)
print(‘items’)
print(person.items())
print(‘keys’)
print(person.keys())

print(‘values’)
print(person.values())

Diccionarios - inserción

# Sintaxis de corchetes
mi_diccionario = {"nombre": "Juan", "edad": 25}
mi_diccionario["telefono"] = "1234567890"

# Método update()
mi_diccionario = {"nombre": "Juan", "edad": 25}
mi_diccionario.update({"telefono": "1234567890"})

Diccionarios - actualización

# Sintaxis de corchetes
mi_diccionario = {"nombre": "Juan", "edad": 25}
mi_diccionario["edad"] = 30

# Método update()
mi_diccionario = {"nombre": "Juan", "edad": 25}
mi_diccionario.update({"edad": 30})


Excelente, Gracias

datos = {
‘name’: ‘agel’,
‘last_name’: ‘puentes’,
‘lenguajes’: [‘php’, ‘python’],
‘age’: 28,
‘nacionalidad’: ‘venezolana’
}
’’‘
print(datos)
datos[‘name’] = ‘Daniel’
print(datos)
datos[‘age’] += 1
print(datos)
del datos[‘nacionalidad’]
print(datos)
datos.pop(‘age’)
print(datos)
datos[‘lenguajes’].append(‘JS’)
print(datos)
’’’

print(‘items’)
print(datos.items())

print(‘keys’)
print(datos.keys())

print(‘values’)
print(datos.values())

#  Diccionarios: inserción y actualización

person = {
  'name': 'nico',
  'last_name': 'molina',
  'langs': ['python', 'javascript'],
  'age': 99 }
print(person)
print('1-Diccionario: ', type(person))

# actualizar contenido por llaves
person['name'] = 'Tiago'
""" Se le restan -= 50"""
person['age'] -= 50 
"""langs es una lista dentro del diccionario, puedo utilizar el .append() para agregar otro idioma"""
person['langs'].append('rust')
print(person)

# Eliminar un atributo del diccionario person, son del() toda la llave. 
del person['last_name']
"""Eliminar bajo en metodo .pop todo el contenido de la llave, se debe agregar un argumento preciso en los diccionarios"""
person.pop('age')
print('metodo pop y del aplicados: ', person)

# obtener los Items del diccionario:
print('Items del diccionario person: ', person.items())

print('llaves del diccionario person: ', person.keys())

print('Valores del diccionario person: ',person.values())
persona={
    "name": "nico",
    "last_name": "moreno",
    "langs":["English","German","Russian"],
    "edad":20
}
print(persona)

#Actualizacion
persona["name"]="santi"
persona["edad"]-=50
persona["langs"].append("rust")
print(persona)

#Eliminar
del persona["last_name"]
print(persona)
persona.pop("edad")
print(persona)

#Impresion
print(persona.items())
print(persona.keys())
print(persona.values())
person = {
  'name': 'ivan',
  'last_name': 'negrete',
  'langs': ['python', 'javascript'],
  'age': 23
}

print(person)

#Actualizar/cambiar un elemento del diccionario
person['name'] = 'santi'
#Hacer ajustes sobre el valor actual
person['age'] -= 3
#agregar un valor dentro de la lista del diccionario
person['langs'].append('rust')
print(person)

#eliminar un atributo/par de valor dentro del diccionario
del person['last_name']
#otra forma de elimanar un atributo(Se debe elegir la llave a eliminar)
person.pop('age')
print(person)

print('ítems')
print(person.items())

print('keys')
print(person.keys())

print('values')
print(person.values())

Otra forma de insertar una clave y valor en diccionarios:

my_second_dict.setdefault('Single', False)

ahora veo , lo que se refieren los p´rogramas para el wifi del vecino cuando piden diccionarios

  • Los diccionarios son una de las estructuras de datos fundamentales en Python. Se utilizan en muchas partes del lenguaje y se han optimizado bastante con el tiempo.

  • Hay varias formas de combinar dos diccionarios. Sin embargo, la sintaxis es un poco críptica o engorrosa:

2
3
4
5
6
7
8
9
10
11
12
>>> pycon = {2016: "Portland", 2018: "Cleveland"}
>>> europython = {2017: "Rimini", 2018: "Edinburgh", 2019: "Basel"}
 
>>> {**pycon, **europython}
{2016: 'Portland', 2018: 'Edinburgh', 2017: 'Rimini', 2019: 'Basel'}
 
>>> merged = pycon.copy()
>>> for key, value in europython.items():
...     merged[key] = value
...
>>> merged
{2016: 'Portland', 2018: 'Edinburgh', 2017: 'Rimini', 2019: 'Basel'

chulada de clase

person = {
‘name’: ‘edward’,
‘last_name’: ‘mendes’,
‘langs’: [‘python’, ‘javascript’],
‘age’: 99
}