Cómo incrementar nombres de variables / ¿Es una mala idea

En Python, si tuviera un usuario que ingrese el número X, y luego el progtwig ingrese un ciclo for en el cual el usuario ingrese valores de X, ¿hay alguna forma / es una mala idea que los nombres de las variables aumenten automáticamente?

es decir:

user inputs '6' value_1 = ... value_2 = ... value_3 = ... value_4 = ... value_5 = ... value_6 = ... 

¿Puedo hacer que los nombres de las variables se incrementen de esa manera para poder tener el número de variables que ingresa el usuario? ¿O debería estar usando un método completamente diferente, como agregar todos los nuevos valores a una lista?

Debes adjuntar todos los valores a una lista, que te permite recorrer fácilmente los valores más adelante y no ensuciar tu espacio de nombres con variables y magia inútiles.

¿Debo usar un método completamente diferente, como agregar todos los nuevos valores a una lista?

Sí, puedes usar una lista . También puede utilizar una asignación para esto.

hacer que los nombres de variables se incrementen así

No. Esa es una idea horriblemente mala.


“pero solo por curiosidad, ¿es esta una forma de hacerlo de la manera solicitada?”

Sí, pero es claramente una idea horriblemente mala. Por lo tanto, no tiene sentido mostrarlo. Es una cosa terrible, incluso terrible intentarlo.

Mientras que usar una lista o diccionario es, por supuesto, el enfoque correcto aquí, es posible crear variables con nombre, usando exec (). Te perderás todas las operaciones convenientes que proporcionan las listas y los diccionarios (piensa en len (), insertando, eliminando, clasificando, etc.), pero es posible:

 count = raw_input('Number of variables:') for i in xrange(count): exec('var_' + str(i) + ' = ' + str(i)) 

exec () acepta y ejecuta cadenas que contienen expresiones de Python válidas. Así que el fragmento de código anterior está generando y ejecutando código sobre la marcha.

Tal vez esto te ayude.

 filenamee = 'Value_' counter1 = 1 counter2 = 2 list1 = [] list2 = range(30) #random number, given len needed for x in list2: counter1 = str(counter1) full_name = (filenamee+counter1) list1.append(full_name) counter1 = counter2 counter2+=1 for x in list1: print(x) 

Si estás buscando hacer una variable incremental, esto funciona para mí. No tengo ni idea de si esta es una progtwigción limpia o no … 🙂

Cuídate