如何递增变量名/这是否是个坏主意
在Python中,如果我让用户输入一个数字X,然后程序进入一个循环,让用户输入X个值,有没有办法让变量名自动增加?这样做是不是个坏主意?
比如:
user inputs '6'
value_1 = ...
value_2 = ...
value_3 = ...
value_4 = ...
value_5 = ...
value_6 = ...
我能不能让变量名像这样自动增加,这样我就可以根据用户输入的数量来创建变量?还是说我应该用其他方法,比如把所有新值放到一个列表里?
4 个回答
12
在这里,使用列表或字典当然是正确的方法,但其实也可以用exec()来创建命名变量。这样做的话,你就会失去列表和字典提供的很多方便操作,比如计算长度(len())、插入、删除、排序等等,不过这也是可以做到的:
count = raw_input('Number of variables:')
for i in xrange(count):
exec('var_' + str(i) + ' = ' + str(i))
exec()可以接受并执行包含有效Python表达式的字符串。所以上面的代码是在动态生成并执行代码。
18
你应该把所有的值放到一个列表里,这样你以后可以很方便地遍历这些值,而且也不会在你的命名空间里留下很多没用的变量和神秘的东西。