[英]Testing user input against a list in 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]
閱讀列表文檔,我發現不可能引用多個索引,我在上面嘗試過,當然會發送語法錯誤。
最簡單的方法是:
if guess in cars:
...
但如果你的名單很大,那就太慢了。 然后,您應該將您的汽車列表存儲在一個集合中:
cars_set = set(cars)
....
if guess in cars_set:
...
檢查某些東西是否存在是一個集合比檢查它是否在列表中要快得多(但這只會在你有很多項目時出現問題,並且你正在多次進行檢查。)
(編輯:我假設問題代碼中的cars[0]
遺漏是偶然的。如果不是,那就用cars[1:]
而不是cars
。)
guess in cars
使用guess in cars
來測試guess
是否等於cars
的元素:
cars = ("red","yellow","blue")
guess = str(input())
if guess in cars:
print ("success!")
@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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.