Форум сайта python.su
0
Допустим, программе подается n-ое количество строк вида “Число Слово”, например “75 qwerty”. Нужно сохранить число (в типе int) и слово в переменные, проделать с ними какие-то операции и так по циклу.
Дело в том, что мне бы не хотелось сохранять саму строку. То есть вариант
st = input().split() points, name = int(st[0]), st[1]
points, name = [int(j) if i == 0 else j for i, j in enumerate(input().split())]
Офлайн
253
ppp08217Ваше желание непонятно. Вы не хотите создавать временную переменную?
Дело в том, что мне бы не хотелось сохранять саму строку.
points,name=[f(v) for f,v in zip([int,str],input().split())]
def scanf(itr,fmt): """ format chars i,f,s,n i - int f - float c - char s - string n - string to newline """ fmtdkt=dict(i=int,f=float,s=lambda x:x) res=[] for ifmt in fmt: if ifmt in "ifs": for i in itr: if not i.isspace(): break buf=[i] for i in itr: if i.isspace(): break else: buf.append(i) s="".join(buf) res.append(fmtdkt[ifmt](s)) else: buf=[] for i in itr: if i != '\n': buf.append(i) else: break res.append("".join(buf)) return res
Отредактировано doza_and (Май 4, 2013 08:46:38)
Офлайн
857
>>> import re >>> >>> s = '75 qwerty' >>> >>> m = re.search(r'^(\d+) (\S+)$', s) >>> n, w = int(m.group(1)), m.group(2) >>> n, w (75, 'qwerty') >>>
Отредактировано py.user.next (Май 4, 2013 09:14:11)
Офлайн
0
doza_andДа, именно. И хотелось бы уместить все это в одной строке.
Вы не хотите создавать временную переменную?
doza_andБуду пока использовать его.points,name=[f(v) for f,v in zip([int,str],input().split())]
Офлайн