什么是'do_this()的pythonic方式,如果条件别通过'?

Lui*_*lez -5 python if-statement

有一种方法可以将它写在一行中吗?

>> list.append(elem) if condition else pass
Run Code Online (Sandbox Code Playgroud)

我有时需要这样的东西,我不知道实现它的最佳方法.

Yat*_*wal 5

if 语句正好用于有条件地执行语句!

if condition:
    list.append(elem)
Run Code Online (Sandbox Code Playgroud)

如果你真的想要一行,我想你可以这样做:

if condition: list.append(elem)
Run Code Online (Sandbox Code Playgroud)

但这绝对不那么可读和惯用!


对于你的第二个例子(更新:它已被编辑出来的问题),Python允许你在任何地方使用三元表达式,这样你就可以缩短

list.append(elem) if condition else other_list.append(elem)
Run Code Online (Sandbox Code Playgroud)

成:

(list1 if condition else list2).append(elem)
Run Code Online (Sandbox Code Playgroud)

然而,它将更具可读性 - 因此,更加惯用 - 将上述内容分成两个语句:

lucky_list = list1 if condition else list2
lucky_list.append(elem)
Run Code Online (Sandbox Code Playgroud)

  • @LuisGonzález你__可以将它组合成一行,但这样可读性较差,因而不那么惯用; 答案相应更新. (2认同)