Python - 根据条件调用函数
Python - Call a Function on a Condition
我想知道是否有一种简洁的方法可以根据条件调用函数。
我有这个:
if list_1 != []:
some_dataframe_df = myfunction()
我想知道是否可以在 ternary operator 或类似的东西中做到这一点。
如果我这样做
(some_dataframe_df = myfunction()) if list_1 != [] else pass
没用。
你的代码没问题。我建议的唯一更改是使用非空列表的固有真实性:
if list_1:
some_dataframe_df = myfunction()
如果你想使用三元语句,应该写成:
some_dataframe_df = myfunction() if list_1 else some_dataframe_df
然而,这既不简洁也不可读。
在三元运算符中使用 pass
似乎不是一个好主意,尤其是因为您可以内联单个语句 if
.
如果您不担心您的列表是 None
,您可以缩短测试以仅使用列表本身的布尔值。这样做的好处是它允许任何正常序列,而不仅仅是列表。
总而言之,您可以这样做:
if list_1: some_dataframe_df = myfunction()
在三元运算符中,条件是一个表达式,而不是语句。因此,您不能使用 pass
而您使用的正常 if
语句是正确的。
我想知道是否有一种简洁的方法可以根据条件调用函数。
我有这个:
if list_1 != []:
some_dataframe_df = myfunction()
我想知道是否可以在 ternary operator 或类似的东西中做到这一点。
如果我这样做
(some_dataframe_df = myfunction()) if list_1 != [] else pass
没用。
你的代码没问题。我建议的唯一更改是使用非空列表的固有真实性:
if list_1:
some_dataframe_df = myfunction()
如果你想使用三元语句,应该写成:
some_dataframe_df = myfunction() if list_1 else some_dataframe_df
然而,这既不简洁也不可读。
在三元运算符中使用 pass
似乎不是一个好主意,尤其是因为您可以内联单个语句 if
.
如果您不担心您的列表是 None
,您可以缩短测试以仅使用列表本身的布尔值。这样做的好处是它允许任何正常序列,而不仅仅是列表。
总而言之,您可以这样做:
if list_1: some_dataframe_df = myfunction()
在三元运算符中,条件是一个表达式,而不是语句。因此,您不能使用 pass
而您使用的正常 if
语句是正确的。