抱歉,我真的不知道如何表达这个问题,所以它可能看起来模棱两可。
我想做的基本上是我有一个代码可以读取用户的输入并将其与某些字母进行比较,但这个过程应该不区分大小写。所以我使用 .lower() 字符串方法。
if (letter.lower() == "a" or letter.lower() == "b" or letter.lower() == "c"):
(在这种情况下,应接受值“A”、“B”、“C”、“a”、“b”和“c”,并拒绝分配给名称“letter”的所有其他值。)
可以进一步缩短吗?可读性并不那么重要,除非它是真正的官话,人类的舌头无法理解哈哈。
我试过:
if (letter.lower() == "a" or "b" or "c"):
这是行不通的。也没有:
if (letter.lower() == ("a" or "b" or "c")):
我感谢任何意见。提前致谢:)
最佳答案
我认为您正在寻找的是关键字in
。以下可能是最“pythonic”的方式。
if letter.lower() in ['a','b','c']:
这应该适合你。虽然,如果您正在寻找速度,最好创建一个字典或设置并从中进行查找。
由于 in
运算符的复杂度对于数组和字符串是平均 O(n)
但平均 O(1)
和最坏情况 O(n)
集合和字典。
例如,
chars = set(['a','b','c'])
if letter.lower() in chars:
如果您有兴趣阅读更多关于复杂性差异的信息,这里是 Python Time Complexity非常有用的文档!
关于python - 有没有办法缩短多个条件,如下所示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48273222/