0
def nested_sum(L):
    return sum( nested_sum(x) if isinstance(x, list) else x for x in L )

これは、次の投稿で Eugenie によって提供された解決策でした: sum of nested list in Python

理解リストを使用せずに再作成しようとしましたが、取得できません。どうすればできますか?

4

1 に答える 1

0

このコードは、リスト内包表記ではなくジェネレータ式を使用しています。

ループを使用+=して結果を合計します。

def nested_sum(L):
    total = 0
    for x in L:
        total += nested_sum(x) if isinstance(x, list) else x
    return total

または、条件式ifもステートメントに展開する場合は、次のようにします。

def nested_sum(L):
    total = 0
    for x in L:
        if isinstance(x, list):
            total += nested_sum(x)
        else:
            total += x
    return total
于 2013-08-15T14:30:36.227 に答える