那天偶爾看到看到一個(gè)小問題:兩個(gè)不等長列表a=[1,2,3],b=[4,5,6,7],求它們對應(yīng)元素的乘積的和。
我一開始想到的方法就是選擇更小數(shù)組作為循環(huán)長度然后相乘求和:
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)
但是后來我想到了一種更為巧妙的方法,利用函數(shù)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)
兩種方法的結(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é)果為:
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)))
到此這篇關(guān)于python求列表對應(yīng)元素的乘積和的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 列表對應(yīng)元素乘積和內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python中必會(huì)的四大高級數(shù)據(jù)類型(字符,元組,列表,字典)
- Python列表刪除重復(fù)元素與圖像相似度判斷及刪除實(shí)例代碼
- Python 統(tǒng)計(jì)列表中重復(fù)元素的個(gè)數(shù)并返回其索引值的實(shí)現(xiàn)方法
- Python基礎(chǔ)詳解之列表復(fù)制
- Python 把兩層列表展開平鋪成一層(5種實(shí)現(xiàn)方式)
- 淺談Python列表嵌套字典轉(zhuǎn)化的問題
- Python隨機(jī)函數(shù)random隨機(jī)獲取數(shù)字、字符串、列表等使用詳解
- Python列表排序方法reverse、sort、sorted詳解
- Python3 列表list合并的4種方法
- python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表
- python實(shí)現(xiàn)合并兩個(gè)有序列表的示例代碼
- Python統(tǒng)計(jì)列表元素出現(xiàn)次數(shù)的方法示例
- python 合并列表的八種方法
- python 列表元素左右循環(huán)移動(dòng) 的多種解決方案
- Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法
- 淺談Python基礎(chǔ)之列表那些事兒