那天偶爾看到看到一個小問題:兩個不等長列表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 列表對應元素乘積和內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python中必會的四大高級數據類型(字符,元組,列表,字典)
- Python列表刪除重復元素與圖像相似度判斷及刪除實例代碼
- Python 統計列表中重復元素的個數并返回其索引值的實現方法
- Python基礎詳解之列表復制
- Python 把兩層列表展開平鋪成一層(5種實現方式)
- 淺談Python列表嵌套字典轉化的問題
- Python隨機函數random隨機獲取數字、字符串、列表等使用詳解
- Python列表排序方法reverse、sort、sorted詳解
- Python3 列表list合并的4種方法
- python獲取指定時間段內特定規律的日期列表
- python實現合并兩個有序列表的示例代碼
- Python統計列表元素出現次數的方法示例
- python 合并列表的八種方法
- python 列表元素左右循環移動 的多種解決方案
- Python列表排序 list.sort方法和內置函數sorted用法
- 淺談Python基礎之列表那些事兒