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
理解リストを使用せずに再作成しようとしましたが、取得できません。どうすればできますか?
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
理解リストを使用せずに再作成しようとしましたが、取得できません。どうすればできますか?
このコードは、リスト内包表記ではなくジェネレータ式を使用しています。
ループを使用+=
して結果を合計します。
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