python求列表對應元素的乘積和的實現
那天偶爾看到看到一個小問題:兩個不等長列表a=[1,2,3],b=[4,5,6,7],求它們對應元素的乘積的和。
我一開始想到的方法就是選擇更小數組作為循環長度然後相乘求和:
a = [1,2,3] b = [4,5,6,7] sum = 0 for i in range(0,min(len(a),len(b))): number += a[i]*b[i] print(sum)
但是後來我想到瞭一種更為巧妙的方法,利用函數zip():
a = [1,2,3] b = [4,5,6,7] all = zip(a,b) num = 0 for i,j in all: num += i*j print(num)
兩種方法的結果完全相同
zip()函數的作用是將列表打包為元組列表,以上述兩個列表為例:
a = [1,2,3] b = [4,5,6,7] all = zip(a,b)
這時的“all”實際上是這樣的形式:
[(1, 4), (2, 5), (3, 6)]
很有意思的小實例,順便學習瞭一個函數
補充:Python 計算列表元素之積
定義一個數字列表,並計算列表元素之積。
例如:
輸入 : list1 = [1, 2, 3]
輸出 : 6
計算:1 * 2 * 3
實例 1
def multiplyList(myList) : result = 1 for x in myList: result = result * x return result list1 = [1, 2, 3] list2 = [3, 2, 4] print(multiplyList(list1)) print(multiplyList(list2))
以上實例輸出結果為:
6
24
采用遞歸方法:
def list_product(list_1,size): if size == 0: return 1 else: return list_1[size-1] * list_product(list_1,size - 1) list_1 = [i for i in range(3,6)] #生成列表[3,4,5] print(list_1) print(list_product(list_1,len(list_1)))
到此這篇關於python求列表對應元素的乘積和的實現的文章就介紹到這瞭,更多相關python 列表對應元素乘積和內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- None Found