У меня есть список, содержащий случайное число int. Я хотел бы перебрать этот список, и если число и последовательное число находятся в пределах одного числового шага друг друга, я хотел бы объединить их в подсписку.Объединить смежное число в списке в python
Например:
input = [1,2,4,6,7,8,10,11]
output = [[1,2],[4],[6,7,8],[10,11]]
В списке ввода всегда будет содержать положительные Интс отсортированных в порядке возрастания. Я пробовал код с here.
initerator = iter(inputList)
outputList = [c + next(initerator, "") for c in initerator]
Хотя я могу Concat каждые две записи в списке, я не могу добавить подходящий if
в списке понимания.
Python версии = 3,4
Однострочный: '[[x для i, x в grp] для _, grp в itertools.groupby (перечисление (inputList), лямбда x: x [1] - x [0])]'. –
спасибо, это хорошо выглядит ...... и я понимаю работу ... однако, если я добавлю каждую запись буквой, поэтому у меня есть вход = [a1, a2, a4, b6 , c7, c8, c10, d11], я также хотел бы сгруппировать по символу, что привело к [[a1, a2], [a4], [b6], [c7, c8], [c10], [d11]]. ... Я не совсем понимаю методы «groupby» и «enumerate», которые, вероятно, поэтому я не могу получить это ... еще раз спасибо – Eoin