如果有的话,我想为以下分支提供更多的pythonic方式:
if a<b:
a.append('value')
elif a==b:
b.append('value')
else:
do nothing
那有三元运算符吗?
答案 0 :(得分:4)
使用嵌套的三元运算符。
func1() if a<b else func2() if a==b else func3()
对于您的具体示例:
a.append('value') if a<b else b.append('value') if a==b else None
答案 1 :(得分:4)
显然,你可以将其他情况放弃
if a<b:
a.append('value')
elif a==b:
b.append('value')
答案 2 :(得分:1)
你可以这样做:
result = a<b and first_action or a==b and second_action or third_action
* _action符合你问题中的“做某事”代码
答案 3 :(得分:1)
你的
if a<b:
a.append('value')
elif a==b:
b.append('value')
else:
do nothing
不能重写,它可以。也许只是删除最后两行(否则/什么都不做)。
我在这里看到的唯一参数化是:
if a <= b:
(a,b)[a==b].append('value')
但这简直太丑了。
答案 4 :(得分:0)
对于完全的情况,其中一个可行:
[b, a, []][cmp(x, y)].append('value')
[b, a, []][cmp(x, y)] += ['value']
请不要这样做。您当前的代码易于阅读。