Python - Obtener el nombre de la variable dentro de una función

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 15 puestos en Python (en relación al último mes)
Gráfica de Python

Obtener el nombre de la variable dentro de una función

Publicado por FGB (2 intervenciones) el 11/10/2020 21:50:21
Hola a todos, necesito ayuda para poder imprimir el nombre de una variable en una función y así tener un output más claro. Este código por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
Lista_1 = [10,25,30]
 
def summ(x):
    import statistics as s
    print("------------------------------------------------")
    print("Resumen de ", x)
    Media = s.mean(x)
    print("Media:", round(Media,2))
    print("------------------------------------------------")
 
summ(Lista_1)

Lo que hace es imprimir los valores de la variable:
------------------------------------------------
Resumen de [10,25,30]
Media: 21.66
------------------------------------------------

Pero mi intención es que el output sea:
------------------------------------------------
Resumen de Lista_1
Media: 21.66
------------------------------------------------

Muchas gracias a todos!
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 Anikollaste
Val: 570
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Obtener el nombre de la variable dentro de una función

Publicado por Anikollaste (118 intervenciones) el 12/10/2020 11:03:03
Hola FGB!
No sé si esto te sirve. Cuál es la finalidad del código?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Lista_1 = [10,25,30]
tupla=(33,18,3.1416)
 
def summ(x):
    import statistics as s
    print("------------------------------------------------")
 
    if type(x)==list:
    	print("Resumen de Lista_1")
 
    elif type(x)==tuple:
    	print("Resumen de tupla")
 
    Media = s.mean(x)
    print("Media:", round(Media,2))
    print("------------------------------------------------")
 
summ(Lista_1)
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

Obtener el nombre de la variable dentro de una función

Publicado por yoyyo (1 intervención) el 12/10/2020 13:30:21
hola:
si entendí bien, esto es lo que buscas:
comento solo lo que hago, pero te toca buscar info sino entendes como manejo el diccionario
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#-*- coding: utf - 8 -*-
 
Lista_1 = [10,25,30]
nombres = locals()  #con esto obtengo un diccionario de las variables disponibles
 
def summ(x):
    import statistics as s
    print("-" *35)  # lo cambie porque escribís mucho, así es más simple hasta de leer
    nombre = list(nombres.keys())[list(nombres.values()).index(x)] #busco la clave por el índice del valor (esto es básico de diccionarios)
    print("Resumen de ", nombre)
    Media = s.mean(x)
    print("Media:", round(Media,2))
    print("-" *35)
 
 
summ(Lista_1)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 15 puestos en Python (en relación al último mes)
Gráfica de Python

Obtener el nombre de la variable dentro de una función

Publicado por FGB (2 intervenciones) el 12/10/2020 20:24:08
Muchas gracias! Finalmente utilicé globals() en lugar de locals() así puedo escribir todo en la misma función.

1
2
3
4
5
6
7
8
9
10
11
12
13
#-*- coding: utf - 8 -*-
 
Lista_1 = [10,25,30]
 
def summ(x):
    import statistics as s
    nombres = globals()  #con esto obtengo un diccionario de las variables disponibles
    print("-" *35)  # lo cambie porque escribís mucho, así es más simple hasta de leer
    nombre = list(nombres.keys())[list(nombres.values()).index(x)] #busco la clave por el índice del valor (esto es básico de diccionarios)
    print("Resumen de ", nombres)
    Media = s.mean(x)
    print("Media:", round(Media,2))
    print("-" *35)
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