Python - como obtener el valor1.1 o el valor 2.2 pasando un solo para

 
Vista:

como obtener el valor1.1 o el valor 2.2 pasando un solo para

Publicado por afer (1 intervención) el 21/03/2021 18:03:05
1
2
3
4
def FuncPrueba(a):
    diccionario={'llave1':{'llave1.1':'valor1.1'},'llave2':{'llave2.1':{'llave2.2':'valor2.2'}}}
    #print(diccionario['llave1']['llave1.1']) ======> como enviar ['llave1']['llave1.1'] por 1 solo argumento en este caso el a
    #print(diccionario['llave2']['llave2.1']['llave2.2']) =========> como enviar ['llave2']['llave2.1']['llave2.2'] por argumento en este caso el a

necesito obtener indistintamente el 'valor1.1' o el 'valor2.2' pasando a la funcion 1 solo argumento en python
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

como obtener el valor1.1 o el valor 2.2 pasando un solo para

Publicado por joel (901 intervenciones) el 21/03/2021 20:31:23
Hola Afer, una manera que se me ocurre es con una función recursiva... haber si te sirve:

1
2
3
4
5
6
7
8
9
10
11
def FuncPrueba(a, d):
    if a:
        key=a.pop(0)
        return FuncPrueba(a, d[key])
    return list(d.keys())[0]
 
diccionario={'llave1':{'llave1.1':'valor1.1'},'llave2':{'llave2.1':{'llave2.2':'valor2.2'}}}
result=FuncPrueba(['llave1'], diccionario)
print(result) # llave1.1
result=FuncPrueba(['llave2', 'llave2.1'], diccionario)
print(result) # llave2.2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar