在Python中测试用户输入是否在列表中

3 投票
4 回答
58973 浏览
提问于 2025-04-16 05:33

我需要测试用户输入的内容是否和列表中的某个元素相同,现在我这样做:

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

if guess == cars[1] or guess == cars[2]:
        print("success!")

但是我现在处理的列表比较大,我的if语句变得越来越复杂,因为要检查的内容太多了,有没有办法可以一次性引用多个索引,比如:

if guess == cars[1] or cars[2]

或者

if guess == cars[1,2,3]

我在阅读列表的文档时发现,引用多个索引是不可能的,我上面尝试的方式当然会出现语法错误。

4 个回答

3

使用 in

if guess in cars:
    print( 'success!' )

另外,你可以查看官方文档中关于序列类型的操作,具体内容可以在这里找到

4

使用 guess in cars 来检查 guess 是否和 cars 里的某个元素相等:

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

if guess in cars:
        print ("success!")
12

最简单的方法是:

if guess in cars:
    ...

不过,如果你的列表很大,这样做会很慢。你应该把你的汽车列表存储在一个集合里:

cars_set = set(cars)
....
if guess in cars_set:
    ...

在集合里检查某个东西是否存在,比在列表里检查要快得多(不过这只有在你有很多很多项,并且要检查多次的时候才会显得重要)。

(补充说明:我假设问题中的代码里省略了 cars[0] 是个意外。如果不是,那就用 cars[1:] 代替 cars。)

撰写回答