Текстовое представление списка с пробеламиPython

Программы на Python
Ответить
Anonymous
 Текстовое представление списка с пробелами

Сообщение Anonymous »

У меня есть список целых чисел, который отсортирован и не содержит дубликатов:

Код: Выделить всё

mylist =  [2, 5,6,7, 11,12, 19,20,21,22, 37,38, 40]
Мне нужно обобщенное текстовое представление, которое показывает группы соседних целых чисел в сжатой форме в виде пары через дефис. Точнее: Смежный подразумевает, что величина отличается на 1. Таким образом, целое число i считается смежным с j, если j = i ± 1. Напомним, что список отсортирован. Это означает, что соседние целые числа будут появляться в списке монотонно возрастающими рядами.
Поэтому мне нужен элегантный Python, который будет представлять mylist как строку

Код: Выделить всё

"2, 5-7, 11-12, 19-22, 37-38, 40,"
То есть
  • изолированное целое число (пример: 2, поскольку список не содержит ни 1 и 3) представляется как 2,
  • группа соседних целых чисел (пример: 19,20,21,22 поскольку каждый член группы отличается от другого члена на 1) представлен как ‹самый низкий›-‹самый высокий›, то есть 19-22,.
Я не могу поверить, что это проблема, которую никто не считал достаточно важной для решения. Не стесняйтесь указать мне на решение, которое я пропустил.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-gaps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»