w3resource

Python: Split values into two groups, based on the result of the given filtering function

Python List: Exercise - 217 with Solution

Write a Python program to split values into two groups, based on the result of the given filtering function.

  • Use a list comprehension to add elements to groups, based on the value returned by fn for each element.
  • If fn returns a truthy value for any element, add it to the first group, otherwise add it to the second group

Sample Solution:

Python Code:

def bifurcate_by(lst, fn):
  return [
    [x for x in lst if fn(x)],
    [x for x in lst if not fn(x)]
  ]
print(bifurcate_by(['red', 'green', 'black', 'white'], lambda x: x[0] == 'w'))

Sample Output:

[['white'], ['red', 'green', 'black']]

Flowchart:

Flowchart: Split values into two groups, based on the result of the given filtering function.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Python Code Editor:

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

Previous: Write a Python program to group the elements of a list based on the given function and returns the count of elements in each group.
Next: Write a Python program to sort one list based on another list containing the desired indexes.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Decapitalizes the first letter of a string:

Example:

def tips_decapitalize(s, upper_rest=False):
  return s[:1].lower() + (s[1:].upper() if upper_rest else s[1:])
print(tips_decapitalize('PythonTips'))
print(tips_decapitalize('PythonTips', True)) 

Output:

pythonTips
pYTHONTIPS

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook