我有一个类似于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
答案 0 :(得分:7)
怎么样:
In [9]: [s[:m.start()] for m in re.finditer(':|$', s)]
Out[9]: ['foo', 'foo:bar', 'foo:bar:baz']
答案 1 :(得分:1)
更易读的解决方案:
def heirarchy(s):
segments = s.split(':')
result = []
for segment in segments:
result.append(segment)
yield ':'.join(result)