使用Python遍历前缀
我有一个分层的描述字符串,格式是 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']