简体   繁体   中英

Python - Call a Function on a Condition

I was wondering if there is a concise way to call a function on a condition.

I have this:

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

I'm wondering if it is possible to this in a ternary operator or something similiar.

If I do

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

It doesn't work.

Your code is fine. The only change I suggest is to use the inherent Truthness of non-empty lists:

if list_1:
    some_dataframe_df = myfunction()

If you wish to use a ternary statement it would be written as:

some_dataframe_df = myfunction() if list_1 else some_dataframe_df

However, this is neither succinct nor readable.

In ternary operator, the conditionals are an expression, not a statement. Therefore, you can not use pass and normal if statement that you have used is correct.

Using pass seems like a bad idea in a ternary operator, especially since you can inline a single-statement if .

If you are not worried about your list being None , you can shorten the test to just use the boolean value of the list itself. This has the advantage that it will allow any normal sequence, not just lists.

All in all, you could do something like:

if list_1: some_dataframe_df = myfunction()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM