[python]判断整数范围的快捷方法

2014-01-06 17:09:29 +08:00
 geew
需求是:
如果有以下状态条件:
a < 20, status = 'c'
50 > a >= 20, status = 'a'
a >= 50, status = 'b'

如果有b=34
此时status = 'a'

get_status(v):
if v < 20: return 'c'
elif v .....
有没有更好看的方法呢?
10483 次点击
所在节点    问与答
6 条回复
likexian
2014-01-06 17:26:25 +08:00
if 有什么不好?


def a(v):
...return 'c' if v <= 20 else ('b' if v >= 50 else 'a')
geew
2014-01-06 17:28:11 +08:00
@likexian 你这精简版if也不错哦 哈哈 貌似我有强迫症
strak47
2014-01-06 17:32:52 +08:00
get_status(v):
return 'c' if v < 20 else (lambda v: ('b' if v >= 50 else 'a'))(v)

写完才看到上面的if,lambda显得好冗余 - -
geew
2014-01-06 17:42:02 +08:00
@strak47 呵呵 我就在想怎么样不用if来做呢 想不出来了
Mutoo
2014-01-06 19:39:21 +08:00
《code complete》 18章 表驱动法 18.4 阶梯访问表
geew
2014-01-14 17:30:42 +08:00
v<20 and 'c' or (v>=50 and 'b' or 'a')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/95878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX