在python中使用输入作为变量



我想知道如何将用户输入的 equiv 转换为变量以替换它

我希望当我输入slice1时它会print 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)`

你应该使用字典。

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"

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

这个解决方案怎么样:

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)

您可以尝试使用 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)

相关内容

  • 没有找到相关文章

最新更新