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 - 使用打印函数将乘法后的元素作为新列表返回。
示例
#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]
使用itertools模块打印列表中前缀的乘积的Python程序的方法 3
使用itertools模块的函数打印前缀的乘积。这个模块通常用于最小化程序中的迭代复杂度。
算法
- 第一步 - 导入itertools模块以使用名为accumulate()的函数。
-
第二步 - 使用包含四个整数元素的列表进行初始化,即[5, 6, 7, 8]。
-
第三步 - 声明一个新变量来保存进行累积操作后的值。
-
第四步 - 通常使用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语言为用户提供了一些内置功能。因此,在列表中,我们可以将多个值存储在一起,从而减少复杂的操作。