2017-05-07 4 views
-1

愚かな質問を申し訳ありません。
私はリストを合計したいと思います。しかし、リストの長さは常に2
よりも大きくないのでreduceは失敗しますlen<2Python sum長さが任意の配列

が、これは私のコードであれば

score = [('xxx', 1), ('yyy', 2)] 
if len(score) >=2: 
    result = reduce((lambda x,y:x[1]+y[1]), score) 
elif len(score)==1: 
    result = score[0] 
else: 
    result = 0 

が、それは、リストの長さがAで2よりも大きい場合は常に配列を合計することが可能ですエレガントな方法?

+1

'結果= [0] [1]' – JJJ

+0

スコア減らすためのラムダ関数は意味をなさないので、これは、任意の長さのために動作しないであろう。今、単純な 'reduce(ラムダ合計、cur:cur [1] +合計、スコア、0)'となります。 – Voo

+0

@Voo教えてくれてありがとう、これは本当に仕事です。あなたの助けをありがとう~~ –

答えて

5

sumがある:

result = sum(s[1] for s in score) 
+0

おかげで、愚かな質問を申し訳ありませんhaha –

関連する問題