-1

簡単な質問:

次のようにPythonで再帰リストを作成する方法:

これは入力です: A 、 B 、 C 、 D

望ましい出力:

              A | A>B | A>B>C | A>B>C>D

私はこのコードを試しました:

line = "A, B , C , D"
line = line.split(',')

for i in range(len(line)):
    for j in range(i,len(line)):
             c=q+line[j]
             q=c+'>'
    c=c+'|'

しかし、私は次のようなリストを持ってきました:

'A > B > C > D > B > C > D > C > D|'

助言がありますか?

前もって感謝します

4

3 に答える 3

3

これは、必要な出力を提供するジェネレーターです。パフォーマンスに関しては、二重結合よりも高速です。O(N^2) ではなく O(N) です。

>>> def getstr(s):
...     a = [x for x in s]
...     res = None
...     for x in a:
...         if not res: res = x
...         else: res = " > ".join([res, x])
...         yield res
>>>
>>> print " | ".join(getstr("ABCD"))
'A | A > B | A > B > C | A > B > C > D'
于 2013-07-28T20:26:37.770 に答える
2

このようなもの?

#! /usr/bin/python3

a = [c for c in 'ABCD']
result = ' | '.join ('>'.join (a [:x + 1] ) for x in range (len (a) ) )
print (result)
于 2013-07-28T20:09:54.397 に答える
1
>>> s = 'A , B , C , D'
>>> L = map(str.strip, s.split(','))
>>> L
['A', 'B', 'C', 'D']
>>> ' | '.join('>'.join(L[:i]) for i in range(1,len(L)+1))
'A | A>B | A>B>C | A>B>C>D'
于 2013-07-28T20:12:31.803 に答える