如何检查变量是否等于两个可能的值?

26 投票
6 回答
26889 浏览
提问于 2025-04-16 01:22

我有一个变量s,它里面存的是一个字母的字符串。

s = 'a'

根据这个变量的值,我想返回不同的东西。目前我做的方式是这样的:

if s == 'a' or s == 'b':
   return 1
elif s == 'c' or s == 'd':
   return 2
else: 
   return 3

有没有更好的写法呢?更符合Python风格的写法?或者说这样写是最有效率的吗?

之前我写的代码是这样的:

if s == 'a' or 'b':
   ...

显然,这样写是不行的,真是个错误。

我知道有条件赋值的写法,也试过这样:

return 1 if s == 'a' or s == 'b' ...

我想问的是,有没有办法在比较一个变量和两个值的时候,不用写成 something == something or something == something 这种形式?

6 个回答

1

如果你只是返回一些固定的值,使用字典可能是最好的方法。

15
 d = {'a':1, 'b':1, 'c':2, 'd':2}
 return d.get(s, 3)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

52
if s in ('a', 'b'):
    return 1
elif s in ('c', 'd'):
    return 2
else:
    return 3

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答