如何增加变量名称/这是一个坏主意

tom*_*tom 7 python variables loops for-loop increment

在Python中,如果我有一个用户输入数字X,然后程序进入一个用户输入X值的for循环,是否有一种方法/让变量名称自动递增是一个坏主意?

即:

user inputs '6'  
value_1 = ...  
value_2 = ...  
value_3 = ...  
value_4 = ...  
value_5 = ...  
value_6 = ...
Run Code Online (Sandbox Code Playgroud)

我可以使变量名称增加,以便我可以拥有用户输入的变量数量吗?或者我应该使用完全不同的方法,例如将所有新值附加到列表中?

knu*_*tin 12

您应该将所有值附加到列表中,这样您可以在以后轻松迭代这些值,也不会使用无用的变量和魔法乱丢您的命名空间.


S.L*_*ott 9

我应该使用完全不同的方法,例如将所有新值附加到列表中吗?

是的,您可以使用列表.您也可以使用映射.

使变量名称增加

不,这是一个可怕的坏主意.


"但出于完全的好奇心,这是一种以问的方式做到这一点的方法吗?"

是的,但这显然是一个可怕的坏主意.所以,展示它没有意义.即使尝试也是一件可怕而可怕的事情.


Pie*_*oet 6

虽然使用列表或字典当然是正确的方法,但可以使用exec()创建命名变量.您将错过列表和词典提供的所有便捷操作(想想len(),插入,删除,排序等),但它可能:

count = raw_input('Number of variables:')
for i in xrange(count):
    exec('var_' + str(i) + ' = ' + str(i))
Run Code Online (Sandbox Code Playgroud)

exec()接受并执行包含有效Python表达式的字符串.所以上面的代码就是动态生成和执行代码.