Форум сайта python.su
EdЯ сам начинающий питонер, изучаю его для себя, и написание сложных конструкций и их понимание даются не с лихвой. Думаю и тем, кому нужна помощь в таких простеньких задачах, будет понятен короткий-построчный код (легче для понимания). =)
Как вы смотрите на эти аналоги?roll = []
for key in range(0, len(txt), 3):
roll.append(dic.get(txt[key:key+3]))
print ''.join(roll)print ''.join([dic[txt[key:key+3]] for key in range(0, len(txt), 3)])
Офлайн
Скажите, пжлст, а почему вот в этой строке:
str_ = seq.join(roll)
Офлайн
EdТолько квадратные скобки вокруг аргумента функции join не только не нужны, но даже и нежелательны.
Как вы смотрите на эти аналоги?
Код:
print ''.join([dic[txt] for key in range(0, len(txt), 3)])
Отредактировано (Сен. 26, 2010 12:59:27)
Офлайн
grokДык я привел и короткий построчный. Ну разве что вынести txt в отдельную переменную осталось.
Я сам начинающий питонер, изучаю его для себя, и написание сложных конструкций и их понимание даются не с лихвой. Думаю и тем, кому нужна помощь в таких простеньких задачах, будет понятен короткий-построчный код (легче для понимания). =)
Офлайн
А нет, это моя ошибка - не доглядел … - всё классно работает.
А вот если, например, во входном файле записаны несколько последовательностей и каждую последовательность надо преобразовать и записать отдельно в выходной файл - каждую - с новой строки?
Т.е.:
<название посл-сти 1>
посл-сть 1
<название посл-сти 2>
посл-сть 2
Т.е. необходимо сначала вывести название, начинающееся с <, а потом - преобразованную посл-сть, далее - название след. посл-сти - и ее саму, преобразованную. Я так понимаю, надо делать что-то вроде такого цикла: если строка начинается с <. то вывести название, если не с < - выполнять действия по преобразованию и т.д. … Или я неправильно понимаю?
Спасибо
Офлайн
Скажите, пжлст, почему в такой конструкции:
for line in f:
if line[0] == '>':
f1.write(line)
text = f.read() ###
lne = text.replace('\n', '')
n = len(lne)
key = 0
roll = []
while key < n:
nlist=lne[key:key+3]
key=key+3
roll.append(dic.get(nlist))
seq = ''
#str_ = seq.join(roll)
#f1.write(str_)
f.read()
Офлайн
Зачем вам читать файл по несколько раз? Это неправильно.
Офлайн
Ну … мне надо знать содержимое след. строк (после line)… - их же надо прочитать …
Офлайн