如何将input()与变量(列表)进行比较

时间:2019-06-06 17:19:15

标签: python-3.x list jupyter-notebook

(我在Jupiter Notebook 5.7.8上使用python)

我有一个项目,其中有3个列表,以及一个引用这3个列表的list(list_of_lists)。 我希望程序接收输入,将此输入与“ list_of_lists”的内容进行比较,如果找到匹配项,则要将匹配项存储在另一个变量中,以备后用。

我只是在学习,所以这是我写的代码:

Mono8Pixel

我希望有一场比赛,但总会输出“没有比赛”, 我认为它无法将输入的内容与list_of列表中的列表进行比较。问题还在于,为什么以及如何正确进行(如果可能),谢谢。

2 个答案:

答案 0 :(得分:0)

python3 中的

input返回一个字符串。如果要将其转换为列表,请使用ast.literal_evaljson.loads或您自己的解析方法。

list_str = input("Which list are you going to use?: ") 
user_list = ast.literal_eval(list_str)
assert isinstance(user_list, list)
...
# do your thing...

答案 1 :(得分:0)

所以在这里,我尝试了这段代码,它可以实现我想要的功能,我不知道它是否太基本,是否还有另一种方法可以实现。 在我将真实列表的值提供给该列表并打印出要使用的列表之后,这里使用第二个列表来捕捉匹配的时刻。

我想知道是否有一种方法可以消除符号“ []”和引号''的困扰,所以我可以使用干净的文本格式,谢谢您的帮助

first = ["item1", "item2","item3"]    
second = ["item4","item5","item6"]    

list1 = [first,second]    
list2 = ["asd","asd","asd"]    
list3 = ["qwe","qwe","qwe"]    
list_of_lists = [list1,list2,list3]    
reference_list = ["list1","list2","list3"]    
count = -1    

x = input('Which list are you going to use? ')    

for item in reference_list:    
    count += 1    
    if x == item:    
        reference_list = list_of_lists    
        print(reference_list[count])