在python中针对列表测试用户输入

Gui*_*eba 2 python

我需要测试用户输入是否与列表元素相同,现在我正在这样做:

cars = ("red", "yellow", "blue")
guess = str(input())

if guess == cars[1] or guess == cars[2]:
        print("success!")
Run Code Online (Sandbox Code Playgroud)

但我正在处理更大的列表,我的if语句在所有这些检查中都有很多增长,有没有办法引用多个索引,如:

if guess == cars[1] or cars[2]
Run Code Online (Sandbox Code Playgroud)

要么

if guess == cars[1,2,3]
Run Code Online (Sandbox Code Playgroud)

阅读列表文档,我发现不可能引用多个索引,我在上面尝试过,当然会发送语法错误.

Ric*_*dle 9

最简单的方法是:

if guess in cars:
    ...
Run Code Online (Sandbox Code Playgroud)

但如果你的名单很大,那就太慢了.然后,您应该将您的汽车列表存储在一个集合中:

cars_set = set(cars)
....
if guess in cars_set:
    ...
Run Code Online (Sandbox Code Playgroud)

检查某些东西是否存在是一个集合比检查它是否在列表中要快得多(但这只会在你有很多项目时出现问题,并且你正在多次进行检查.)

(编辑:我假设cars[0]从问题中的代码遗漏是一个意外.如果不是,那么使用cars[1:]而不是cars.)