Let’s say I have multiple variables like:
x = 0 y = 2 if x and y: pass
How can I determine which of the variables are not True
? I am trying to identify this without using the if
statements. For the above example, I want to just get 0
(falsy value) skipping the 2
(truthy value).
Advertisement
Answer
You can create a tuple
of all your variables. And then use itertools.filterfalse()
with bool
as predicate value to get all the Falsy values from tuple as:
>>> from itertools import filterfalse >>> my_list = (1, "a", False, 2.34, "", 0) >>> list(filterfalse(bool, my_list)) [False, '', 0]
Similarly if you need a list of all the Truthy values, you can use filter()
as:
>>> my_list = (1, "a", False, 2.34, "", 0) >>> list(filter(bool, my_list)) [1, 'a', 2.34]