Python Forum

Full Version: How to invoke a function with return statement in list comprehension?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi All,

I want to invoke a function with return statement using list comprehension or even lambda (if possible) for the better performance. Below is code snippet where I am trying to achieve that in list comprehension where if that function return Fail then break the flow and control move to next statement.
def func(var):
    return True if var % 2 else False

l = [2, 2, 3, 4]
new_list = [out for var in l out = func(var) if out == False break]
print(new_list)
Output:
[True, True]
But then I could not able to achieve the desired result, I would really appreciate if any suggestion on this.

Similarly how to assign a value using list comprehension?

Regards,
Maiya
from itertools import takewhile


def func(number):
    return True if number % 2 else False


numbers = [2, 2, 3, 4]
new_list = [number for number in numbers if not func(number)]
print(new_list)

new_list2 = list(takewhile(lambda number: not func(number), numbers))
print(new_list2)
Output:
[2, 2, 4] [2, 2]
I want to store the return value from the function not the list numbers.
from itertools import takewhile


def func(number):
    return True if number % 2 else False


numbers = [2, 2, 3, 4]
new_list = [func(number) for number in numbers if not func(number)]
print(new_list)

new_list2 = [func(number) for number in takewhile(
    lambda number: not func(number), numbers)]
print(new_list2)
Output:
[False, False, False] [False, False]
(Jul-17-2021, 12:01 PM)Yoriz Wrote: [ -> ]
from itertools import takewhile


def func(number):
    return True if number % 2 else False


numbers = [2, 2, 3, 4]
new_list = [func(number) for number in numbers if not func(number)]
print(new_list)

new_list2 = [func(number) for number in takewhile(
    lambda number: not func(number), numbers)]
print(new_list2)
Output:
[False, False, False] [False, False]
Could you please explain the code sir? and here is that really required to call func method twice?
Regards,
Maiya