我想知道如何将(可能)用户输入转换为变量来替换它
我希望当我输入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)`
答案 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)