我想知道是否存在一种简洁的方法来按条件调用函数。
我有这个:
if list_1 != []:
some_dataframe_df = myfunction()
我想知道是否可以通过ternary operator或类似的方式实现此目的。
如果我这样做
(some_dataframe_df = myfunction()) if list_1 != [] else pass
它不起作用。
答案 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()