Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

split list of tuples in lists of list of tuples

I have a list of tuples like:

[(1,a),(2,b), (1, e), (3, b), (2,c), (4,d), (1, b), (0,b), (6, a), (8, e)]

I want to split it into list of lists at every "b"

[[(1,a),(2,b)], [(1, e), (3, b)], [(2,c), (4,d), (1, b)], [(0,b)], [(6, a), (8, e)]]

is there any pythonic way to do this?

like image 524
Abhishek Thakur Avatar asked Mar 20 '23 04:03

Abhishek Thakur


1 Answers

You can use yield.

def get_groups(lst):
    t = []
    for i in lst:
        t.append(i)
        if i[1] == 'b':
            yield t
            t = []
    if t:
        yield t

my_list = [(1,a),(2,b), (1, e), (3, b), (2,c), (1, b), (0,b)]
groups = list(get_groups(my_list))
like image 110
Jayanth Koushik Avatar answered Mar 31 '23 22:03

Jayanth Koushik