a = [[1,2,3],[4,1],[2,2,6],[3]]
の合計は24を出力します
[1,2,3]
私は自分ができるような単一のリストを知っていますsum(a)
が、ネストされたリストに苦労しています。
ありがとうございました。
これにより、新しい一時リストは作成されません。
sum(sum(b) for b in a)
sum(sum(a, []))
内部合計は、すべての個々のリストを1つのリストに結合します。次に、外側の合計が実際の合計を求めます。
複数の深さでネストされているリストの場合、これを使用できます。
def recursiveSum(data):
try:
total = 0
for item in data:
total += recursiveSum(item)
return total
except TypeError: #data isn't iterable, it's probably a number
return data
print recursiveSum([[[[1,2,3],[4,1]],[2,2,6]],3])
出力:
24