Python itertools.takewhile() Function
The Python itertools.takewhile() function is used to return elements from an iterable as long as a specified condition remains true. Once the condition evaluates to false, iteration stops immediately.
This function is useful for processing sequences where elements should only be included until a certain threshold is met.
Syntax
Following is the syntax of the Python itertools.takewhile() function −
itertools.takewhile(predicate, iterable)
Parameters
This function accepts the following parameters −
- predicate: A function that returns True or False for each element.
- iterable: The input iterable whose elements will be processed.
Return Value
This function returns an iterator that yields elements from the iterable until the predicate function returns False.
Example 1
Following is an example of the Python itertools.takewhile() function. Here, we take numbers from a list until we reach a number greater than or equal to 10 −
import itertools numbers = [1, 4, 7, 9, 10, 12, 15] result = itertools.takewhile(lambda x: x < 10, numbers) for num in result: print(num)
Following is the output of the above code −
1 4 7 9
Example 2
Here, we use itertools.takewhile() function to extract elements from a sorted list of temperatures until a temperature of 30 or higher is encountered −
import itertools temperatures = [22, 24, 27, 29, 30, 32, 35] result = itertools.takewhile(lambda t: t < 30, temperatures) for temp in result: print(temp)
Output of the above code is as follows −
22 24 27 29
Example 3
Now, we use itertools.takewhile() function to process a list of words, stopping when a word longer than 5 characters is encountered −
import itertools words = ["apple", "pear", "fig", "banana", "cherry", "grape"] result = itertools.takewhile(lambda w: len(w) <= 5, words) for word in result: print(word)
The result obtained is as shown below −
apple pear fig
Example 4
We can use itertools.takewhile() function to filter stock prices until a significant drop occurs −
import itertools stock_prices = [100, 105, 110, 115, 90, 80, 70] result = itertools.takewhile(lambda price: price > 95, stock_prices) for price in result: print(price)
The result produced is as follows −
100 105 110 115
python_modules.htm