在python中使用输入作为变量

时间:2017-01-27 11:35:49

标签: python python-3.x variables user-input

我想知道如何将(可能)用户输入转换为变量来替换它

我希望当我输入slice1print a1 a2 a3时,我会发现s l i c e 1 我该怎么办?

这是代码是一个例子

List = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']]
slice1 = List[0]
slice2 = List[1]
temp = input("slice number")
for item in temp:
    print(i)`

3 个答案:

答案 0 :(得分:2)

你应该使用字典。

lists = {"slice1":["a1", "a2", "a3"], "slice2":["b1", "b2", "b3"]}
userInput = input("Enter Slice Number")

varName = "slice"+userInput
print(" ".join(lists[varName]))

slice1就是所谓的密钥。键是不可变项(通常是字符串,但可以是整数或元组)。每个键都有一个值,例如slice1的值为["a1", "a2", "a3"]。您可以像在列表中一样访问值,但不使用索引,而是使用密钥。

因此,当您想要访问["a1", "a2", "a3"]时,您会列出["slice1"]。这比使用全局变量更有优势,因为您可以轻松添加新键和更改值。另外,直接更改全局变量是不好的做法。

" ".join(lists["slice1"])

" ".join(list)获取list的所有项目,并使用文本“”作为分隔符将它们组合在一起。

我上面的代码最终完成了这个

>>>Enter Slice Number1
a1 a2 a3
>>> 

所以当你输入“1”时你会得到“a1 a2 a3”

答案 1 :(得分:0)

您可以尝试使用globals()按名称访问变量

例如:

List = [[a1, a2, a3], [b1, b2, b3]]
slice1 = List[0]
slice2 = List[1]
temp = input("slice number")
slice_list = globals()[temp] 
for item in slice_list: 
    print(item)

答案 2 :(得分:0)

我不确定我完全理解你的问题。

这个解决方案怎么样:

List = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']]
slice1 = List[0]
slice2 = List[1]
user_input = input("slice number")

if user_input == 'slice1':
    for item in slice1:
        print item
elif user_input == 'slice2':
    for item in slice2:
        print item
else:
    print "Slice not found :("

OP改变了要求,这是我使用字典的解决方案:

slices_dictionary = {'slice1':['a1', 'a2', 'a3'], 'slice2':['b1', 'b2', 'b3']}

user_input = input("slice number")

def check_slice(user_input):
    if user_input in slices_dictionary:
        for item in slices_dictionary[user_input]:
            print item
    else:
        print "Sorry but your slice was not found!"

check_slice(user_input)