Python list内の要素を全て乗算する

paizaのスキルチェック問題で必要になったが、手間取ったのでメモを残す。


NumPyを使用する方法もあるようだが、自前で解決してみる。

list_a=[1,2,3]        #サンプルのリスト

temp =list_a[0]    #リストの先頭の要素をtempにセット
for i in range(1,len(list_a)):    #forでリストの2番目の要素から最後までをループ
    temp=temp*list_a[i]        #tempを取得した要素と乗算してtempを更新

tempに全てを乗算した値が入る。

最初は、

for i in range(1,len(list_a)):
    temp=temp*list_a[i]

としていたが、rangeよりはリストをスライスで呼び出したほうが良さげ。

 

関数を自作してみる

def lseki(a):
    temp=a[0]
    for i in a[1:]:
        temp=temp*i
    return(temp)

でlseki関数作成

list_a=[1,2,3]        #サンプルのリスト

print(lseki(list_a))

で出力される。

print(lseki([1,2,3]))

と直接リストの入力も可能。

要素が1つの場合、エラーではなく1つだけある要素がそのまま出力される。