如何针对2个可能的值检查变量?

我有一个变量s,其中包含一个字母的字符串


s = 'a'

根据该变量的值,我想返回不同的东西。到目前为止,我正在做一些事情:


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

   return 1

elif s == 'c' or s == 'd':

   return 2

else: 

   return 3

有没有更好的方法来写这个?一个更Pythonic的方式?或者这是最有效的?


以前,我错误地有这样的事情:


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

   ...

显然这不起作用,对我来说相当愚蠢。


我知道条件赋值并试过这个:


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

我想我的问题是专门有一种方法可以将变量与两个值进行比较,而无需键入 something == something or something == something


慕尼黑8549860
浏览 363回答 4
4回答

qq_遁去的一_1

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

侃侃无极

return 1 if (x in 'ab') else 2 if (x in 'cd') else 3

慕的地10843

也许更多的自我记录使用if else:d = {'a':1, 'b':1, 'c':2, 'd':2} ## good choice is to replace case with dict when possiblereturn d[s] if s in d else 3还有可能用if else实现流行的第一个答案:  return (1 if s in ('a', 'b') else (2 if s in ('c','d') else 3))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python