Реализация функциональности ref для непрерывно вызываемых методов с одной и той же переменной ref

Опять же, старый поток, но вот мое решение с использованием генератора и простой str.find.

def findall(p, s):
    '''Yields all the positions of
    the pattern p in the string s.'''
    i = s.find(p)
    while i != -1:
        yield i
        i = s.find(p, i+1)

Пример

x = 'banananassantana'
[(i, x[i:i+2]) for i in findall('na', x)]

возвращает

[(2, 'na'), (4, 'na'), (6, 'na'), (14, 'na')]
4
задан N VIswa Nihar 17 January 2019 в 05:11
поделиться