如何递增变量名/这是否是个坏主意

16 投票
4 回答
81817 浏览
提问于 2025-04-15 20:40

在Python中,如果我让用户输入一个数字X,然后程序进入一个循环,让用户输入X个值,有没有办法让变量名自动增加?这样做是不是个坏主意?

比如:

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

我能不能让变量名像这样自动增加,这样我就可以根据用户输入的数量来创建变量?还是说我应该用其他方法,比如把所有新值放到一个列表里?

4 个回答

9

我是不是应该用一种完全不同的方法,比如把所有的新值加到一个列表里去?

是的,你可以使用一个列表。你也可以用一个映射来实现这个。

让变量名像那样递增

不可以。这是个非常糟糕的主意。


“但出于好奇,真的没有办法按照提问的方式来做吗?”

可以,但这显然是个非常糟糕的主意。所以没有必要去展示这个。尝试这样做是非常糟糕的事情。

12

在这里,使用列表或字典当然是正确的方法,但其实也可以用exec()来创建命名变量。这样做的话,你就会失去列表和字典提供的很多方便操作,比如计算长度(len())、插入、删除、排序等等,不过这也是可以做到的:

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

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

18

你应该把所有的值放到一个列表里,这样你以后可以很方便地遍历这些值,而且也不会在你的命名空间里留下很多没用的变量和神秘的东西。

撰写回答