Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种更优雅的python方式来表达以下条件表达式?_Python - Fatal编程技术网

有没有一种更优雅的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

我想为以下分支提供一种更具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 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')