Question: 
Write a function to reflect the modified run-length encoding from a list.


Model's Code:
def modified_encode(sequence):
    if not sequence:
        return []
    
    encoded = []
    count = 1
    for i in range(1, len(sequence)):
        if sequence[i] == sequence[i - 1]:
            count += 1
        else:
            if count > 1:
                encoded.append([count, sequence[i - 1]])
            else:
                encoded.append(sequence[i - 1])
            count = 1
    if count > 1:
        encoded.append([count, sequence[-1]])
    else:
        encoded.append(sequence[-1])
    
    return encoded



Sample Correct Code:
from itertools import groupby
def modified_encode(alist):
        def ctr_ele(el):
            if len(el)>1: return [len(el), el[0]]
            else: return el[0]
        return [ctr_ele(list(group)) for key, group in groupby(alist)]


Asserts:
assert modified_encode([1,1,2,3,4,4,5,1])==[[2, 1], 2, 3, [2, 4], 5, 1]
assert modified_encode('automatically')==['a', 'u', 't', 'o', 'm', 'a', 't', 'i', 'c', 'a', [2, 'l'], 'y']
assert modified_encode('python')==['p', 'y', 't', 'h', 'o', 'n']


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 317 of 974: 228/317 (71.92429022082018%): success