-7

指定されたリスト内のすべての数値を追加する関数を作成するにはどうすればよいですか? パイソンで。このようなもの:

list = [8, 5, 6, 7, 5, 7]

def sum(list):
    ???
4

2 に答える 2

3

あなたが尋ねたことに厳密に答えるには:

# notice how I've named it 'lst' not 'list'—'list' is the built in; don't override that
def sum(lst):  
    ret = 0
    for item in lst;
        ret += item
    return ret

または、関数型プログラミングが好きなら:

def sum(lst):
    return reduce(lambda acc, i: acc + i, lst, 0)

あるいは:

import operator

def sum(lst):
    return reduce(operator.add, lst, 0)

数値以外の入力で動作させることもできますが、これはビルトインではsum()実行できません (効率的な C コードとして実装されているため)。

def sum(lst, initial=None):
    if initial is None:
        initial = type(lst[0])() if lst else None
    return reduce(lambda acc, i: acc + i, lst, initial)

>>> sum([1, 2, 3])
6
>>> sum(['hello', 'world'])
'hello world'
>>> sum([[1, 2, 3], [4, 5, 6]])
[1, 2, 3, 4, 5, 6]

しかし、Python リストは型指定されていないため、空のリストの場合、この関数は を返しNoneます。

注:しかし、他の人が指摘しているように、これは学習目的にのみ役立ちます。実際には、組み込みsum()関数を使用します。

于 2013-09-30T13:21:17.213 に答える
0

それはすでにそこにあり、定義する必要はありません:

sum([8,5,6,7,5,7])
于 2013-09-30T13:19:10.610 に答える