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 语言为用户提供了一些内置功能。因此,在列表中,我们可以将多个值存储在一起,从而减少复杂的操作。