Python-根据条件调用函数

时间:2018-11-09 16:01:34

标签: python if-statement ternary-operator

我想知道是否存在一种简洁的方法来按条件调用函数。

我有这个:

if list_1 != []:
    some_dataframe_df = myfunction()

我想知道是否可以通过ternary operator或类似的方式实现此目的。

如果我这样做

(some_dataframe_df = myfunction()) if list_1 != [] else pass

它不起作用。

3 个答案:

答案 0 :(得分:3)

您的代码很好。我建议的唯一更改是使用非空列表的固有真理:

if list_1:
    some_dataframe_df = myfunction()

如果您希望使用三元语句,它将被写为:

some_dataframe_df = myfunction() if list_1 else some_dataframe_df

但是,这既不简洁也不可读。

答案 1 :(得分:2)

在三元运算符中,条件语句是表达式,而不是语句。因此,您不能使用pass,并且您使用的普通if语句是正确的。

答案 2 :(得分:1)

在三元运算符中,使用pass似乎是个坏主意,尤其是因为您可以内联单语句if

如果您不担心列表为None,则可以缩短测试以仅使用列表本身的布尔值。这样做的好处是它将允许任何常规序列,而不仅仅是列表。

总而言之,您可以执行以下操作:

if list_1: some_dataframe_df = myfunction()