import itertools
key_list = ['a', 'c', 'f']
wrong_list = ['a', 'b', 'c', 'd', 'e', 'f']
wrong_list_fixed = [['a', 'b'], ['c', 'd', 'e'], ['f']]
class key:
def __init__(self, key_list):
self.last = -1
self.key_list = key_list
def __call__(self, item):
try:
self.last = self.key_list.index(item, self.last + 1)
except ValueError:
pass
return self.last
wrong_list_fixed = [list(g) for k, g in itertools.groupby(wrong_list, key(key_list))]
print(wrong_list_fixed)
aW1wb3J0IGl0ZXJ0b29scwoKa2V5X2xpc3QgPSBbJ2EnLCAnYycsICdmJ10Kd3JvbmdfbGlzdCA9IFsnYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnXQp3cm9uZ19saXN0X2ZpeGVkID0gW1snYScsICdiJ10sIFsnYycsICdkJywgJ2UnXSwgWydmJ11dCgpjbGFzcyBrZXk6CiAgICBkZWYgX19pbml0X18oc2VsZiwga2V5X2xpc3QpOgogICAgICAgIHNlbGYubGFzdCA9IC0xCiAgICAgICAgc2VsZi5rZXlfbGlzdCA9IGtleV9saXN0CiAgICBkZWYgX19jYWxsX18oc2VsZiwgaXRlbSk6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzZWxmLmxhc3QgPSBzZWxmLmtleV9saXN0LmluZGV4KGl0ZW0sIHNlbGYubGFzdCArIDEpCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHBhc3MKICAgICAgICByZXR1cm4gc2VsZi5sYXN0Cgp3cm9uZ19saXN0X2ZpeGVkID0gW2xpc3QoZykgZm9yIGssIGcgaW4gaXRlcnRvb2xzLmdyb3VwYnkod3JvbmdfbGlzdCwga2V5KGtleV9saXN0KSldCnByaW50KHdyb25nX2xpc3RfZml4ZWQp