-1

次のネストされたリストを考えると、

myList=([1,[2,3],[[4,5,[6],7],8,9]])

私はそれを逆にして次のように変換したい:

myList= [[[4, 5, [6], 7], 8, 9], [2, 3], 1]

それ、どうやったら出来るの?ありがとう。

4

4 に答える 4

2

要素がリスト自体であるかどうかをチェックする再帰的プロシージャを定義できます。要素がリストでない場合は、結果に直接追加されます。要素がリストの場合、プロシージャはこのlist-elementを入力などとして再帰的に呼び出します。最終的な結果は、リストが逆になります。

def is_list(p): 
    return isinstance(p, list)

def deep_reverse(mylist):
    result = []
    for e in mylist:
        if isinstance(e, list):
            result.append(deep_reverse(e))
        else:
            result.append(e)
    result.reverse()
    return result

例:リスト[1、[8、9、[4、[5、9]]]]は[[[[9、5]、4]、9、8]、1]になります

于 2012-06-04T01:35:59.643 に答える
1

実際には非常に簡単です。これを逆にすることができます:

myList=([1,[2,3],[[4,5,[6],7],8,9]])

myList = myList[::-1]

それでおしまい !

于 2015-01-22T03:34:11.223 に答える
-2

これが本当に宿題である場合は、そのようにタグ付けする必要があります。それ以外の場合は、「リストを逆にするユーザー定義関数」に対する答えは次の関数になる可能性があります。

import copy
def rev(l):
    lc = copy.deepcopy(l)
    lc.reverse()
    return lc

これは、元のリストをその場で逆にしたくない (そして、ランタイムによって既に提供されている関数を実際に開発する任務を負っていない) ことを前提としています。 . ;)

于 2012-05-21T18:01:38.883 に答える