Форум сайта python.su
0
Есть строка ‘1,23-25’
Нужно получить 4 числа
1,23,24,25
Как это сделать?
Офлайн
23
medelgover
конкретно в данном случае получилось вот так:
mylist = [] line = '1,23-25' r1, r2 = line.split(",") mylist.append(int(r1)) s, f = [int(x) for x in r2.replace("-", ",").split(",") ] mylist.extend(range(s, f+1)) print mylist
Офлайн
25
def make_seq(s): for p in s.split(','): if '-' in p: a, b = p.split('-') for i in xrange(int(a), int(b) + 1): yield i else: yield int(p) print list(make_seq('1,23-25'))
Офлайн
23
s0rgи я спасибо скажу
a, b = p.split('-')
Офлайн
15
Добавлю еще такие варианты, для Python 3.3.2
http://pastebin.com/9CJhdqdA
Офлайн