也許以前有人問過這個問題,但我一直遇到這個問題,我想知道如何最有效地完成這項作業
問題是:如何有效地檢查元素是否在元組串列中?
我有一個元組串列——命名為“類別”——它接收一個由類別名稱和類別編號組成的元組。
我想找出用戶輸入的類別名稱是否實際上是此元組串列中的類別。
例如:
categories = [('Exam', 15), ('Homework', 20)]
現在程式要求用戶輸入一個類別:
user_category_input = input('Please enter a category name: ')
user_category_input = user_category_input.strip()
現在,我希望程式檢查并查看用戶輸入的類別名稱是否實際上是元組串列中的一個類別。如果用戶輸入“考試”,顯然是真的!“考試”是元組串列中的一個類別。如果它是“演示文稿”,那么它是錯誤的等等。
我一直在使用的簡單解決方案是簡單地遍歷元組并檢查第一個元素是否等于用戶輸入,如以下代碼所示:
for category in categories:
if category[0] == user_category_input:
return True
return False
但這是最有效的方法嗎?
是否可以在這里使用某種 lambda?在這里提高效率有什么不同嗎?
仍在學習python,只是想看看在實踐中應該做什么,如果這是多余的或者只是一個愚蠢的問題,那么抱歉:p
uj5u.com熱心網友回復:
把它變成一個dict. 這是要使用的適當資料型別:
categories = [('Exam', 15), ('Homework', 20)]
categories = dict(categories)
#{'Exam': 15, 'Homework': 20}
return user_category_input in categories
uj5u.com熱心網友回復:
用 any()
return any(c[0] == user_category_input for c in categories)
但是如果你需要經常這樣做,最好制作categories一個字典而不是一個元組串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314347.html
