w3resource

Python: Make an iterator that drops elements from the iterable as soon as a condition is true

Python Itertools: Exercise-6 with Solution

Write a Python program to make an iterator that drops elements from the iterable as soon as an element is a positive number.

Sample Solution:

Python Code:

import itertools as it
def drop_while(nums):
    return it.dropwhile(lambda x : x < 0, nums)
nums = [-1,-2,-3,4,-10,2,0,5,12]
print("Original list: ",nums)
result = drop_while(nums)
print("Drops elements from the iterable when a positive number arises \n",list(result))
#Alternate solution
def negative_num(x):
    return x < 0
def drop_while(nums):
    return it.dropwhile(negative_num, nums)
nums = [-1,-2,-3,4,-10,2,0,5,12]
print("Original list: ",nums)
result = drop_while(nums)
print("Drops elements from the iterable when a positive number arises \n",list(result))

Sample Output:

Original list:  [-1, -2, -3, 4, -10, 2, 0, 5, 12]
Drops elements from the iterable when a positive number arises 
 [4, -10, 2, 0, 5, 12]
Original list:  [-1, -2, -3, 4, -10, 2, 0, 5, 12]
Drops elements from the iterable when a positive number arises 
 [4, -10, 2, 0, 5, 12]

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to generate an infinite cycle of elements from an iterable.
Next: Write a Python program to make an iterator that drops elements from the iterable as long as the elements are negative; afterwards, returns every element.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://198.211.115.131/python-exercises/itertools/python-itertools-exercise-6.php