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