Я хочу создать функцию в Python, которая принимает список с более чем 1 элементом числовых упорядоченных целых чисел в качестве входных данных и возвращает список тех же самых целых чисел в качестве выходных данных, но любые повторы группируются в собственном спискес этим списком, являющимся элементом в возвращаемом списке функцией. Например:
[3,3,4,4,4,5,6,6]
будет возвращено как [[3,3],[4,4,4],5,[6,6]]
Я пытался встроить несколько операторов if для каждого условия, но это слишком запутанно, слишком быстро.
def simplify(mylist):
if len(mylist) > 1:
newlist = []
for i in range(0, len(mylist) - 1):
if (mylist[i] == mylist[i + 1]):
count = 2
group = [mylist[i], mylist[i]]
while (i + count) <= (len(mylist) - 1):
if mylist[i] == mylist[i + count]:
group.append(mylist[i])
count += 1
else:
newlist.append(group)
break
else:
newlist.append(mylist[i])
print(newlist)
return (newlist)
Таким образом, я ожидал, что он сделает то, что описал, что должна делать функция, но затем получился список с повторяющимися элементами, списки которых уменьшались на один элемент до тех пор, пока он не закончил итерацию и не добавил последнее значение. Пример:
вход [3,4,4,4,4,5]
возвращено [3,[4,4,4,4],[4,4,4],[4,4],4]