我从来没有找到一种简洁方法做的事情是将字符串与多个集合进行比较,或者可以使用一个长的字符串来提供一些有意义的输出。这是我目前的代码:Python简洁性:将字符串与具有返回值的多个集合进行比较
def input():
text = input("Choose a number: ").lower()
if "1" in text or "one" in text: return 1
elif "2" in text or "two" in text: return 2
... and so on...
elif "9" in text or "nine" in text: return 9
else: return 0
我的目标是让它更简洁一点,考虑它现在有多丑。
此外,在问题标签的一点点:这是更快地做到这一点,或:
if any(x in text for x in (["1", "one"])): return 1
哪一个被认为是更主流?
对不起;我的Python确实是入门级的。
---编辑---
道歉的混乱;我其实是一些更普遍意义,比如这个:
def input():
text = input("Give an input: ").lower()
if any(x in text for x in (["eggplant", "emoji", "purple"])): return 1
elif any(x in text for x in (["tomato", "red", "tomatina"])): return 2
... and so on...
elif any(x in text for x in (["lettuce", "green", "avatar"])): return 9
else: return 0
也许是正则表达式? 此外,输入可能只是一个数字或一个数字(不是“短语”)?你能做出这些假设吗? – Aviad
对不起,这不是我原来的代码;我只是用一种表达我的意思的格式。输入将是一个字符串。我对我缺乏Python专业知识表示歉意,但我真的不知道如何使用正则表达式;你能给我一个小例子吗? – XymphosCraK