在Python中测试用户输入是否在列表中
我需要测试用户输入的内容是否和列表中的某个元素相同,现在我这样做:
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
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
。)