我需要测试用户输入是否与列表元素相同,现在我正在这样做:
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]
阅读列表文档我发现不可能引用多个索引,比如我在上面尝试过,当然会发送语法错误。
答案 0 :(得分:9)
最简单的方法是:
if guess in cars:
...
但是如果你的名单很大,那就太慢了。然后,您应该将您的汽车列表存储在一个集合中:
cars_set = set(cars)
....
if guess in cars_set:
...
检查某些东西是否存在是一个集合比检查它是否在列表中要快得多(但这只会在你有很多项目时出现问题,而且你正在多次进行检查。)
(编辑:我假设问题代码中遗漏cars[0]
是偶然的。如果不是,请使用cars[1:]
代替cars
。 )
答案 1 :(得分:2)
使用guess in cars
来测试guess
是否等于cars
中的元素:
cars = ("red","yellow","blue")
guess = str(input())
if guess in cars:
print ("success!")
答案 2 :(得分:2)
答案 3 :(得分:0)
@Sean Hobbs: 首先,您必须为变量索引分配一个值。
index = 0
您可能希望使用while来创建无限循环,因此您的代码将如下所示:
while True:
champ = input("Guess a champion: ")
champ = str(champ)
found_champ = False
for i in listC:
if champ == i:
found_champ = True
if found_champ:
print("Correct")
else:
print("Incorrect")