指定されたリスト内のすべての数値を追加する関数を作成するにはどうすればよいですか? パイソンで。このようなもの:
list = [8, 5, 6, 7, 5, 7]
def sum(list):
???
指定されたリスト内のすべての数値を追加する関数を作成するにはどうすればよいですか? パイソンで。このようなもの:
list = [8, 5, 6, 7, 5, 7]
def sum(list):
???
あなたが尋ねたことに厳密に答えるには:
# 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()
関数を使用します。
それはすでにそこにあり、定義する必要はありません:
sum([8,5,6,7,5,7])