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つだけある要素がそのまま出力される。