Найти - Пользователи
Полная версия: Выделение подстроки
Начало » Python для новичков » Выделение подстроки
1 2 3
grok
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)])
Я сам начинающий питонер, изучаю его для себя, и написание сложных конструкций и их понимание даются не с лихвой. Думаю и тем, кому нужна помощь в таких простеньких задачах, будет понятен короткий-построчный код (легче для понимания). =)
AmF
Скажите, пжлст, а почему вот в этой строке:
str_ = seq.join(roll)
мне выдается ошибка TypeError: expected string, NonType found? - т.е., насколько я понял, переменной str_ пытаются присвоить нечто, что не имеет типа, хотя предполагается строка?

Спасибо
Isem
Ed
Как вы смотрите на эти аналоги?
Код:

print ''.join([dic[txt] for key in range(0, len(txt), 3)])
Только квадратные скобки вокруг аргумента функции join не только не нужны, но даже и нежелательны.
Ed
grok
Я сам начинающий питонер, изучаю его для себя, и написание сложных конструкций и их понимание даются не с лихвой. Думаю и тем, кому нужна помощь в таких простеньких задачах, будет понятен короткий-построчный код (легче для понимания). =)
Дык я привел и короткий построчный. Ну разве что вынести txt в отдельную переменную осталось.
На мой взгляд все эти многочисленные переменные n,str_, lne и прочие не упрощают код, а наоборот усложняют его, делают менее читабельным.
AmF
А нет, это моя ошибка - не доглядел … - всё классно работает.

А вот если, например, во входном файле записаны несколько последовательностей и каждую последовательность надо преобразовать и записать отдельно в выходной файл - каждую - с новой строки?
Т.е.:
<название посл-сти 1>
посл-сть 1
<название посл-сти 2>
посл-сть 2
Т.е. необходимо сначала вывести название, начинающееся с <, а потом - преобразованную посл-сть, далее - название след. посл-сти - и ее саму, преобразованную. Я так понимаю, надо делать что-то вроде такого цикла: если строка начинается с <. то вывести название, если не с < - выполнять действия по преобразованию и т.д. … Или я неправильно понимаю?

Спасибо
AmF
Скажите, пжлст, почему в такой конструкции:
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()
то след. строку не читает - там text неизвестен.

Спасибо
sp3
Зачем вам читать файл по несколько раз? Это неправильно.
AmF
Ну … мне надо знать содержимое след. строк (после line)… - их же надо прочитать …
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