如何根据Python中的数字引用变量?

时间:2017-01-04 13:59:42

标签: python python-2.7

我在Python 2.7中有一个程序,我试图根据用户输入的数字来引用一些变量。我有以下内容:

p1 = "foo1"
p2 = "foo2"
p3 = "foo3"
p4 = "foo4"
p5 = "foo5"
p6 = "foo6"
p7 = "foo7"
k = raw_input('Enter number')

显然,在if上发表k个陈述是多余的。对于我的程序,是否有一种更优雅的方式,在给定k的情况下,引用变量pk?例如,如果k=2,程序将找到变量p2

3 个答案:

答案 0 :(得分:2)

将值保留在列表中

l = ['foo1', 'foo2', 'foo3']

然后您可以通过索引

访问它们
print l[0]

输出

foo1

答案 1 :(得分:0)

我建议使用dict

{1: 'foo1', 2: 'foo2', ...}[k]

但是,如果您想为每个值使用单独的变量,那么您可以使用locals()globals()

locals()['p%d' % k]

(假设type(k) == intTrue

答案 2 :(得分:0)

lst = [ "foo1", "foo2","foo3","foo4","foo5","foo6","foo7"] #save them as list

userinput = raw_input("Enter value:") #take input from user

print(lst[userinput]) #now the number from user will be the index
# to access your said object

让我说我输入3然后结果我得到:

foo4