def split_key(control, data):
groups = {}
order = []
count = 0
for key, item in zip(control, data):
key = repr(key) if type(key) == list else key
if key not in groups:
order.append(key)
groups[key] = []
groups[key].append(item)
count += 1
result = [groups[key] for key in order]
if count < len(data):
result.append(data[count:])
return result
groups = {}
order = []
count = 0
for key, item in zip(control, data):
key = repr(key) if type(key) == list else key
if key not in groups:
order.append(key)
groups[key] = []
groups[key].append(item)
count += 1
result = [groups[key] for key in order]
if count < len(data):
result.append(data[count:])
return result