У меня есть следующий код, в котором я пытаюсь преобразовать строковое представление диапазонов в список чисел. Например, если входное значение равно '0-0,3-5,7-10'
, ожидаемое значение равно [0,3,4,5,7,8,9,10]
. Тем не менее, я получил ошибку в:
for l,h in r.split('-')
, что говорит, что недостаточно значений для распаковки. Я считаю, что r
должен иметь форму 'x-y'
, поэтому, если я разделю его на '-'
, я должен получить два значения обратно. Что с этим не так?
def parse_ranges(ranges):
"""Return a list of numbers corresponding to number ranges in a string"""
g = (
(l,h)
for r in ranges.split(',')
for l,h in r.split('-')
)
return (x
for range_tuple in g
for l,h in range_tuple
for x in range(int(l), int(h)+1)
)
parse_ranges('0-5,8-10,11-13')