如何使用递归提取子字符串列表?

2024-06-01 20:35:18 发布

您现在位置:Python中文网/ 问答频道 /正文

给一个字符串,比如说, strr = "int a; int b; int c;" 如何从这个字符串中提取包含['int a', 'int b', 'int c']等元素的列表。 我想用递归实现这个输出,而不使用正则表达式。请导游


Tags: 字符串元素列表int导游strr
2条回答

虽然有更简单的方法,但使用递归的解决方案如下所示

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']

您可以使用内置的split和'strip'函数:

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

输出:

['int a', 'int b', 'int c']

相关问题 更多 >