python求列表對(duì)應(yīng)元素的乘積和的實(shí)現(xiàn)
那天偶爾看到看到一個(gè)小問(wèn)題:兩個(gè)不等長(zhǎng)列表a=[1,2,3],b=[4,5,6,7],求它們對(duì)應(yīng)元素的乘積的和。
我一開(kāi)始想到的方法就是選擇更小數(shù)組作為循環(huán)長(zhǎng)度然后相乘求和:
a = [1,2,3]b = [4,5,6,7]sum = 0for i in range(0,min(len(a),len(b))): number += a[i]*b[i]print(sum)
但是后來(lái)我想到了一種更為巧妙的方法,利用函數(shù)zip():
a = [1,2,3]b = [4,5,6,7]all = zip(a,b)num = 0for i,j in all: num += i*jprint(num)
兩種方法的結(jié)果完全相同
zip()函數(shù)的作用是將列表打包為元組列表,以上述兩個(gè)列表為例:
a = [1,2,3]b = [4,5,6,7]all = zip(a,b)
這時(shí)的“all”實(shí)際上是這樣的形式:
[(1, 4), (2, 5), (3, 6)]
很有意思的小實(shí)例,順便學(xué)習(xí)了一個(gè)函數(shù)
補(bǔ)充:Python 計(jì)算列表元素之積定義一個(gè)數(shù)字列表,并計(jì)算列表元素之積。
例如:
輸入 : list1 = [1, 2, 3] 輸出 : 6 計(jì)算:1 * 2 * 3實(shí)例 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))
以上實(shí)例輸出結(jié)果為:
624
采用遞歸方法:
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)))
到此這篇關(guān)于python求列表對(duì)應(yīng)元素的乘積和的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 列表對(duì)應(yīng)元素乘積和內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. IntelliJ IDEA恢復(fù)刪除文件的方法2. CSS3中Transition屬性詳解以及示例分享3. jsp 實(shí)現(xiàn)的簡(jiǎn)易mvc模式示例4. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題5. layui Ajax請(qǐng)求給下拉框賦值的實(shí)例6. 詳談ajax返回?cái)?shù)據(jù)成功 卻進(jìn)入error的方法7. IntelliJ IDEA 2020最新激活碼(親測(cè)有效,可激活至 2089 年)8. uniapp+.net core實(shí)現(xiàn)微信小程序獲取手機(jī)號(hào)功能9. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(二)10. ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)
