我想知道如何将用户输入的 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)