Найти - Пользователи
Полная версия: Строка в инт
Начало » Python для новичков » Строка в инт
1
medelgover
Есть строка ‘1,23-25’
Нужно получить 4 числа
1,23,24,25

Как это сделать?
vrabey

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

но может ответят те кто действительно в python разбирается?
s0rg
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'))
vrabey
s0rg
a, b = p.split('-')
и я спасибо скажу
smoke853
Добавлю еще такие варианты, для Python 3.3.2
http://pastebin.com/9CJhdqdA
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB