使用Python遍历前缀

3 投票
2 回答
1377 浏览
提问于 2025-04-17 02:51

我有一个分层的描述字符串,格式是 foo:bar:baz,其中层级之间用 : 来分隔。我想要逐层遍历这个层级。有没有比这个更简单的方法呢:

def hierarchy(s):
  segments = s.split(':')
  for i in range(len(segments)):
    prefix = ':'.join(segments[0:i+1])
    print prefix  
    # or do something else instead of prefix

2 个回答

2

这是一个更容易理解的解决方案:

def heirarchy(s):
    segments = s.split(':')
    result = []
    for segment in segments:
        result.append(segment)
        yield ':'.join(result)
7

这样怎么样:

In [9]: [s[:m.start()] for m in re.finditer(':|$', s)]
Out[9]: ['foo', 'foo:bar', 'foo:bar:baz']

撰写回答