有没有一种更优雅的python方式来表达以下条件表达式?
我想为以下分支提供一种更具python风格的方式(如果有的话):有没有一种更优雅的python方式来表达以下条件表达式?,python,Python,我想为以下分支提供一种更具python风格的方式(如果有的话): if a<b: a.append('value') elif a==b: b.append('value') else: do nothing 如果a使用嵌套的三元运算符 func1() if a<b else func2() if a==b else func3() func1()如果可以执行以下操作: result = a<b and first_action or a==b and s
if a<b:
a.append('value')
elif a==b:
b.append('value')
else:
do nothing
如果a使用嵌套的三元运算符
func1() if a<b else func2() if a==b else func3()
func1()如果可以执行以下操作:
result = a<b and first_action or a==b and second_action or third_action
result=a您的
如果a适用于您的具体情况,则其中一个将起作用:
[b, a, []][cmp(x, y)].append('value')
[b, a, []][cmp(x, y)] += ['value']
请不要这样做。您当前的代码很容易阅读。显然,您可以不使用else
if a<b:
a.append('value')
elif a==b:
b.append('value')
如果apythonic人喜欢pythonic这个词,即使它没有任何意义。使用6行有什么不对?如果你的三个做某事
非常不同,这可能是最好的方法。如果可以将它们参数化,则可以更简洁地编写分支。告诉我们更多关于你的做某事s.@GrantThomas虽然这有点真实,但我通常将其用作“符合导入此”中的大多数内容:)@Blender,可以使用cmp(a,b)
:)更简洁地编写。虽然和/或欺骗它是有效的,但在我看来,它只会使它的可读性大大降低。@AttilaO。我认为欺骗是一个主要的形容词。捷径和逻辑在大多数语言中都很常见。。。我是一个球迷:)现在你让我有了打高尔夫球的心情[func2,func3,func1][cmp(a,b)]()
@好奇。是的,他认为他们只是不同而已。再清楚地看一遍答案。@好奇-是吗?只有当我开始某种高尔夫比赛时,它才起作用?这是唯一真正的进步。
if a <= b:
(a,b)[a==b].append('value')
[b, a, []][cmp(x, y)].append('value')
[b, a, []][cmp(x, y)] += ['value']
if a<b:
a.append('value')
elif a==b:
b.append('value')