1

ドット区切りの文字列を受け取る関数があります。この値をループして構築し、各レベルのコードを実行したいと思います。実装は次のとおりです。

def example(name):
    module = []
    for i in name.split('.'):
        module.append(i)
        print '.'.join(module)
        #do some stuff here

出力

>>> example('a.b.c.d')
a
a.b
a.b.c
a.b.c.d

しかし、それは非常に長く感じられます。よりシンプルでクリーンな、またはより短い実装を探しています。

4

2 に答える 2

5

一度分割してからスライスします。

s = 'a.b.c.d'

items = s.split('.')
print [items[:i] for i in xrange(1, len(items) + 1)]
# [['a'], ['a', 'b'], ['a', 'b', 'c'], ['a', 'b', 'c', 'd']]
于 2013-05-14T17:24:09.967 に答える