Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] dict.update()

Buen día, apreciado equipo de Alura :)

Realizando el método dic. update(), al parecer me borro los otros datos que tenia dentro del diccionario, agradezco me indiquen cual seria la mejor manera de realizarlo para que solo me actualice los que yo queria; en este caso era cambiar el valor de Passat a de 75000 a 70000, lo cual se hizo, pero no me aparecen los datos de año, kilometraje. Adicional cuando agregue el otro carro el DS5 , no le puse datos de accesorios y cuando solicito los datos ya no me aparecen para passat esto antes de cambiarle el valor.

Remito codigo:


datos
{'Passat': {'año': 2012,
  'km': 50000,
  'valor': 75000,
  'accesorios': ['Airbag', 'ABS']},
 'Crossfox': {'año': 2015, 'km': 35000, 'valor': 25000}}
 
 datos.update({'DS5': {'año': 2013,
  'km': 40000,
  'valor': 85000}})
  
  datos
  
  {'Passat': {'año': 2012, 'km': 50000, 'valor': 75000},
 'Crossfox': {'año': 2015, 'km': 35000, 'valor': 25000},
 'DS5': {'año': 2013, 'km': 40000, 'valor': 85000}}
 
 
 datos.update({'Passat': { 'valor': 70000 }})
 
 datos
 {'Passat': {'valor': 70000},
 'Crossfox': {'año': 2015, 'km': 35000, 'valor': 25000},
 'DS5': {'año': 2013, 'km': 40000, 'valor': 85000}}

Muchas gracias...

2 respuestas
solución!

Hola , espero que estea bien

El problema que estás experimentando al usar update() en tu diccionario se debe a la forma en que estás estructurando las actualizaciones. Cuando usas update(), estás reemplazando la información del diccionario original con la nueva información proporcionada, en lugar de actualizar campos específicos mientras mantienes los campos existentes.

Para actualizar campos específicos en un diccionario sin reemplazar toda la entrada, puedes hacerlo de la siguiente manera:

# Tu diccionario original
datos = {'Passat': {'año': 2012, 'km': 50000, 'valor': 75000, 'accesorios': ['Airbag', 'ABS']},
         'Crossfox': {'año': 2015, 'km': 35000, 'valor': 25000}}

# Actualizar el valor del Passat
datos['Passat']['valor'] = 70000

# Agregar datos para el DS5
datos['DS5'] = {'año': 2013, 'km': 40000, 'valor': 85000}

# Verificar el diccionario actualizado
print(datos)

Con este enfoque, actualizas el valor del Passat sin afectar los otros campos existentes y agregas información para el DS5 sin eliminar nada.

Si deseas agregar accesorios a un carro específico, puedes hacerlo de la siguiente manera:

# Agregar accesorios al Passat
datos['Passat']['accesorios'] = ['Airbag', 'ABS', 'Sunroof']

# Verificar el diccionario actualizado
print(datos)

Esto agrega "Sunroof" a la lista de accesorios del Passat sin afectar los otros datos del carro o del DS5.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Buenas Tardes

Hay manera de realizar esa actualización de datos específicos dados en la solución de esta duda usando datos.update?

Mil gracias