To split a list in Python according to a condition, you can use the
groupby() function from the
itertools module. The
groupby() function takes an iterable and a key function, and groups the elements of the iterable based on the return value of the key function.
Here’s an example of how you might split a list in Python according to a condition using
from itertools import groupby my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] groups = groupby(my_list, lambda x: x % 2 == 0) even_numbers, odd_numbers = ,  for is_even, group in groups: if is_even: even_numbers.extend(group) else: odd_numbers.extend(group) print(even_numbers) print(odd_numbers)
In this example, we define a list
my_list with ten integers. We then use the
groupby() function to group the elements of
my_list based on whether they are even or odd. The lambda function
lambda x: x % 2 == 0 is used as the key function to group the elements.
We then iterate over the groups returned by
groupby(), and use a conditional statement to append the elements to either the
even_numbers list or the
odd_numbers list, depending on whether they are even or odd.
When run, this program will output the following:
[2, 4, 6, 8, 10] [1, 3, 5, 7, 9]
Note that the
groupby() function requires that the input iterable be sorted by the key function. In this example, the elements of
my_list are naturally sorted because the even elements come before the odd elements, but in other cases you may need to sort the list explicitly before using