当前位置 博文首页 > python求列表对应元素的乘积和的实现

    python求列表对应元素的乘积和的实现

    作者:寂灭小清秋 时间:2021-05-04 17:44

    那天偶尔看到看到一个小问题:两个不等长列表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)))
    
    js
    下一篇:没有了