Python – 列表前缀乘积


Python 属于高级语言,使用 Python 的人员可以使用简单的概念和功能找到问题的解决方案。该语言由多种数据结构组成,其中列表是最常见的。列表中的元素可以是任何数据类型,例如整数、字符串或浮点数类型。元素用方括号括起来,并用逗号分隔。使用列表数据结构是最有趣的基础知识之一。

列表前缀乘积

列表数据结构由整数元素组成,打印列表中前缀的乘积涉及将第一个元素与第二个元素相乘,然后将其存储在第一个索引位置的方法。

0

1

2

3

5

6

7

8

第一行表示索引值,第二行表示元素的值。第一个元素保留其位置。索引值 0 和 1 相乘后,结果存储在第二个位置,该过程继续进行。

第一个元素 = 5

第二个元素 = 5 * 6 = 30

第三个元素 = 30 * 3 = 210

第四个元素 = 210 * 8 = 1680

方法

  • 方法 1 - 使用用户自定义函数。

  • 方法 2 - 使用 numpy 模块

  • 方法 3 - 使用 itertools 方法

方法 1:使用用户函数定义打印列表中前缀乘积的 Python 程序

该函数定义了打印前缀元素乘积所需的参数。

算法

  • 步骤 1 - 使用一个参数定义函数。

  • 步骤 2 - 初始化空列表和空变量,其值为 1。

  • 步骤 3 - for 循环将遍历列表,另一个 for 循环将从当前索引值开始迭代。

  • 步骤 4 - 临时变量乘以当前元素。

  • 步骤 5 - 然后,append 函数将添加乘法后的元素。

  • 步骤 6 - 使用 print 函数将相乘后的元素作为新列表返回。

示例

#Defining the function with the input of integer data type 
def pre_mul(list1):
#Creating an empty list
    result = []
#for loop is used to iterate through the list according to the range
    for num in range(0,len(list1)):
        temp = 1
        for val in range(num+1):
            temp *= list1[val]
        result.append(temp)
    return result
#list is initialized with elements
list1 = [5, 6 ,7 ,8]
#print function returns the list after the product of prefix
print(pre_mul(list1))

输出

[5, 30, 210, 1680]

方法 2:使用 numpy 模块打印列表中前缀乘积的 Python 程序

使用 numpy 模块中的名为“cumprod”的函数,按特定顺序(从第一个元素到最后一个元素)相乘前缀元素。

算法

  • 步骤 1 - 导入 numpy 模块以使用所需函数。

  • 步骤 2 - 创建列表数据结构以保存整数值。

  • 步骤 3 - 使用 cumprod() 方法获取列表中元素的累积乘积。

  • 步骤 4 - 结果存储在名为“pro”的变量中。

  • 步骤 5 - 然后,print 函数将在执行前缀乘积后返回列表。

示例

#Importing the numpy module
import numpy as np
#creating a list to hold the values of integer elements
list1 = [5, 6 ,7 ,8]
#pro variable is created to store the result after cumprod()
pro = np.cumprod(list1)
#return the new list
print(pro)

输出

[   5   30  210 1680]

方法 3:使用 itertools 模块打印列表中前缀乘积的 Python 程序

使用 itertools 模块中的函数打印前缀的乘积。此模块通常用于最大限度地减少程序中迭代的复杂性。

算法

  • 步骤 1 - 导入 itertools 模块以使用名为 accumulate() 的函数。

  • 步骤 2 - 使用四个整型元素 [5, 6, 7, 8] 初始化列表。

  • 步骤 3 - 声明一个新变量来保存执行累积运算后的值。

  • 步骤 4 - 通常使用 lambda 函数,在不需要定义函数并且可以使用关键参数执行过程的情况下。

示例

#the required module is imported
import itertools
#list is initialized with integer elements
list1 = [5, 6 ,7 ,8]
#accumulate function to do the multiplication of the prefix elements
pro = list(itertools.accumulate(list1, lambda a,b: a*b))
#finally returns the final list
print(pro)

输出

[5, 30, 210, 1680]

结论

列表数据结构(在方括号内)中定义的元素一旦定义就不能更改。为了打印列表数据结构中的前缀乘积,Python 语言为用户提供了一些内置功能。因此,在列表中,我们可以将多个值存储在一起,从而减少复杂的操作。

更新于:2023年9月4日

浏览量 151

开启您的 职业生涯

完成课程获得认证

开始学习
广告