Как извлечь список подстрок с помощью рекурсии? - PullRequest
0 голосов
/ 04 августа 2020

Для данной строки скажем: strr = "int a; int b; int c;" Как мне извлечь из этой строки список, содержащий такие элементы, как ['int a', 'int b', 'int c']. Я хочу добиться этого с помощью рекурсии и вообще без RegEx. Пожалуйста, проведите.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы можете использовать встроенные функции split и 'полосы`:

l = strr.split(';')
l = [x.strip() for x in l]
l.remove('')

вывод:

['int a', 'int b', 'int c']
0 голосов
/ 05 августа 2020

Хотя существуют более простые методы, решение с использованием рекурсии выглядит следующим образом.

def extract(s):
    ' finds substrings delimited by ; '
    try:
        index = s.index(';')
        # current word + recursion for remainder
        # index + 1 in recursion to skip over ';'
        return [s[:index]] + extract(s[index+1:])
    except:
        # delimiter wasn't found (base case)
        return []

Использование

strr = "int a; int b; int c;"
print(list(extract(strr)))           # Need list to get all element of generator
# Output: ['int a', ' int b', ' int c']
...