我在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
。
答案 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) == int
为True
)
答案 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