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.

Código:
for numero in lista_datos:
    print(numero)
    # Este for se ejecuta para cada elemento de lista_datos.
    for valor in numero.items():
        print(valor)
        print('Datos introducidos son:',diccionario_datos['primero'],',',
                diccionario_datos['segundo'],'y',diccionario_datos['tercero'])

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)