marita
0
Q:

Pack consecutive duplicates of list elements into sublists python

import itertools

def pack_consecutive_duplicates(_list: list):
    preprocessed_list = []
    # x groups the duplicates into a tuple ()
    # x[0] is the duplicate element
    # x[1] is a grouper iterable that conatins all the duplicate elements
    for x in itertools.groupby(_list):
        amount = [*x[1]].count(x[0])
        if amount > 1:
            for k in range(0, amount):
                preprocessed_list.append(x[0])
        else:
            preprocessed_list.append((x[0]))

    return preprocessed_list
1

New to Communities?

Join the community