Python – 列表中第 k 列的乘积
列表可以在方括号内包含任意数量的子列表,子列表之间用逗号分隔。一旦在方括号内的列表数据结构中定义了元素,就不能更改它们。因此,在列表中,我们可以将多个值存储在一起,从而减少复杂的运算。列表可以包含元素和另一个称为子列表的列表。
在这篇文章中,我们将介绍如何将列元素相乘,为了更好地理解,让我们来看一个例子。该列表包含三个子列表,每个子列表包含三个元素。程序员决定计算每个列表的最后一个元素(索引值为 2)的所有元素的乘积。
List = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
将第二个索引元素相乘,即 3*6*9 = 162 是返回的乘积。同样,Python 程序使用不同的方法执行这些功能,从而提高效率并减少时间。
方法
方法 1 − 使用 for 循环
方法 2 − 使用 reduce 方法
方法 1:使用 for 循环计算列表中列表的第 k 列的乘积的 Python 程序
for 循环将遍历给定的元素列表,并找到列表中列表的指定索引值的乘积。
算法
步骤 1 − 使用两个参数定义函数
步骤 2 − 使用 isinstance(),我们可以检查给定的输入是否存在于列表中。
步骤 3 − 在下面的代码中,它被指定为 2,因此打印结果;另一方面,当指定的值大于 2 时,它将执行 return 语句。
步骤 4 − 然后它检查三行(三个列表)是否具有足够的且相等的列。
步骤 5 − 使用 for 循环计算乘积值并将其存储在名为“result”的变量中
步骤 6 − 列表用整数和三个子列表初始化。
步骤 7 − 打印最终输出。
示例
#function is defined with two parameters def product_cols(lst,cols_val): #To check whether the input is in the given list if not isinstance(lst,list): raise Exception(f"object {type(file)} isn't list type") #if loop is used to check whether all column and indexes are correct for a,row in enumerate(lst,start=1): try: temp=row[cols_val] except IndexError: raise Exception(f"{str(a)}th given values is not within the limit{str(cols_val)}.") # The product is calculated using for loop result = 1 for each_row in lst: result *= each_row[cols_val] return result #initializing the list element list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #The final output is printed for the elements in index value of 2 print(product_cols(list1, 2))
输出
162
方法 2:使用 reduce() 方法计算列表中列表的第 k 列的乘积的 Python 程序
这个过程看起来很简单,但是使用 reduce 方法实现程序比较繁琐。导入所需的模块,并根据给定的输入值执行程序。
算法
步骤 1 − 导入所需的模块以使用 reduce 和 operator 等函数。
步骤 2 − 使用列表的列表和列索引值作为两个参数定义函数。
步骤 3 − 检查输入,判断它是否存在于给定的列表中。
步骤 4 − 然后检查行是否正确地包含所有列元素。
步骤 5 − 在 reduce 函数的帮助下,计算列表中列表的乘积,并使用 print() 函数返回结果。
示例
#importing the module to use reduce function from functools import reduce #importing the operator import operator #defining the function with two parameters def product_cols(lst,cols_val): #To check whether the input is in the given list if not isinstance(lst,list): raise Exception(f"object {type(file)} isn't list type") #if loop is used to check whether all column and indexes are correct for a,row in enumerate(lst,start=1): try: temp=row[cols_val] except IndexError: raise Exception(f"{str(a)}the given values is not within the limit{str(cols_val)}.") return reduce(operator.mul,[each_row[cols_val] for each_row in lst]) #initializing the list with set of sublists list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #Finally printing the list after the multiplication print(product_cols(list1, 2))
输出
162
结论
Python 属于高级语言,使用 Python 的人员可以使用简单的概念和功能找到问题的解决方案。该语言由多种数据结构组成,其中列表是最常见的。本文介绍了使用 functools 模块和 for 循环方法计算第 k 列乘积的不同方法。