Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Leer diccionario dentro de una lista
#1
Hola,

Tengo una duda a la hora de acceder a una lista en la que cada elemento de la misma es un diccionario.
Os escribo lo que tengo hecho hasta ahora:

# Lista vacía
lista_datos = []

# Pido datos por pantalla
entrada = input('Más datos. si/no: ')

# Blucle hasta que el usuario introduzca el valor no
while entrada != 'no':

    # Diccionario vacío
    diccionario_datos = {}

    # solicitamos tres datos para almacenar en el diccionario
    diccionario_datos['primero'] = str(input('Primer dato: '))
    diccionario_datos['segundo'] = str(input('Segundo dato: '))
    diccionario_datos['tercero'] = str(input('Tercer dato: '))

    # Introduzco el diccionario en la lista_datos
    lista_datos.append(diccionario_datos)

    # Solicito si desea seguir introduciendo datos
    entrada = input('Más datos. si/no: ')

# Variable para almacenar la cantidad total de datos
total = float(0)


for numero in lista_datos:
    print(numero)
for valor in numero.items():
    print(valor)
    print('Datos introducidos son:',diccionario_datos['primero'],',',diccionario_datos['segundo'],'y',diccionario_datos['tercero'])

print(lista_datos)



El programa funciona.
Si introduzco que sí a la primera pregunta e introduzco uno, dos tres
Vuelvo a decir que sí quiero seguir introduciendo datos e introduzco cuatro, cinco, seis
Digo que no quiero seguir.

Como resultado, entre otros, obtengo:
Datos introducidos son: cuatro , cinco y seis
Datos introducidos son: cuatro , cinco y seis
Datos introducidos son: cuatro , cinco y seis

(repetido tres veces)

Y el resultado que yo deseo es:
Datos introducidos son: uno, dos y tres
Datos introducidos son: cuatro , cinco y seis

¿Cómo puedo acceder a cada diccionario de la lista para poder mostrar ese resultado?

Alguien me puede ayudar.

Gracias
Responder
#2
Hola.

El código está muy bien. Solo falta que el último bucle esté dentro del primero. Si no, el código se ejecuta solo para el último diccionario que agregaste.

  1. for numero in lista_datos:
  2. print(numero)
  3. # Este for se ejecuta para cada elemento de lista_datos.
  4. for valor in numero.items():
  5. print(valor)
  6. print('Datos introducidos son:',diccionario_datos['primero'],',',
  7. diccionario_datos['segundo'],'y',diccionario_datos['tercero'])


Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)