import re
from itertools import count
text = "Hello_Dear_Today_is_Nice_Today_is_Nice"
def replace_nth(text, sub, rep_sub, n):
c = count(0)
res = re.sub(r"{}".format(sub), lambda x: rep_sub if next(c) == n else x.group(), text)
return res
print(replace_nth(text, "Today", "Today_2", 2))
Но возвращаемая строка та же, что я делаю не так?
Я ожидаю:
Я пытаюсь написать функцию, которая возвращает строку, в которой n-я подстрока заменена новой подстрокой. Я пробовал следующее: [code]import re from itertools import count
text = "Hello_Dear_Today_is_Nice_Today_is_Nice"
def replace_nth(text, sub, rep_sub, n): c = count(0) res = re.sub(r"{}".format(sub), lambda x: rep_sub if next(c) == n else x.group(), text) return res
print(replace_nth(text, "Today", "Today_2", 2)) [/code] Но возвращаемая строка та же, что я делаю не так? Я ожидаю: [code]Hello_Dear_Today_is_Nice_Today_2_is_Nice[/code] в результате
Что касается пользовательского контейнера, обертывающего итератор, я намеревался делегировать часть своей логики itertools.islice. Одним из соображений было избежать ненужных итераций по обернутому итератору.
При вызове itertools.islice(iterable,...
Что касается пользовательского контейнера, обертывающего итератор, я намеревался делегировать часть своей логики itertools.islice. Одним из соображений было избежать ненужных итераций по обернутому итератору.
При вызове itertools.islice(iterable,...
Я пишу код на Python и хочу, чтобы itertools также генерировал и печатал уже напечатанные комбинации, но в обратной форме. Я не хочу, чтобы он печатал его немедленно, я хочу, чтобы он отправлялся туда периодически, когда комбинации достигают этой...