3.9. Idiom Any

  • Return True if any element of the iterable is true.

  • If the iterable is empty, return False.

>>> DATA = [True, False, True]
>>>
>>> any(DATA)
True

3.9.1. Solution

>>> def any(iterable):
...     if not iterable:
...         return False
...     for element in iterable:
...         if element:
...             return True
...     return False

3.9.2. Use Case - 0x01

>>> any(x for x in range(0,5))
True

3.9.3. Use Case - 0x02

>>> DATA = [{'is_astronaut': True,  'name': 'Pan Twardowski'},
...         {'is_astronaut': True,  'name': 'Mark Watney'},
...         {'is_astronaut': False, 'name': 'José Jiménez'},
...         {'is_astronaut': True,  'name': 'Melissa Lewis'},
...         {'is_astronaut': False, 'name': 'Alex Vogel'}]
>>>
>>>
>>> if any(person['is_astronaut'] for person in DATA):
...     print('At least one person is astronaut')
... else:
...     print('There are no astronauts')
At least one person is astronaut