📜  Python – 列表中 i^k 的乘积

📅  最后修改于: 2022-05-13 01:55:09.422000             🧑  作者: Mango

Python – 列表中 i^k 的乘积

Python作为魔术师的语言,可用于以简单简洁的方式执行许多繁琐和重复的任务,并且拥有充分利用该工具的知识总是有用的。一个这样的小应用程序可以仅在一行中找到列表的 i^k 的乘积。让我们讨论可以执行此操作的某些方式。

方法 #1:使用reduce() + lambda + pow()
lambda 函数在一行中执行冗长任务的强大功能,允许它与用于累积子问题的 reduce 结合来执行此任务。 pow() 用于执行计算能力的任务。仅适用于Python 2。

# Python code to demonstrate 
# Product of i ^ k in List
# using reduce() + lambda + pow() 
  
# initializing list 
test_list = [1, 3, 5, 7, 9, 11] 
  
# printing original list 
print ("The original list is : " + str(test_list)) 
  
# initializing K 
K = 4
  
# using reduce() + lambda + pow() 
# Product of i ^ k in List 
res = reduce(lambda i, j: i * pow(j, K), [pow(test_list[:1][0], K)] + test_list[1:]) 
  
# printing result 
print ("The product of i ^ k of list is : " + str(res)) 
输出 :
The original list is : [1, 3, 5, 7, 9, 11]
The product of i ^ k of list is : 11676104538800625

方法 #2:使用map() + loop + pow()
类似的解决方案也可以使用 map函数进行积分和 prod函数执行 i^k 数的乘积。

# Python3 code to demonstrate 
# Product of i ^ k in List
# using map() + loop + pow() 
  
# getting Product 
def prod(val) : 
    res = 1 
    for ele in val: 
        res *= ele 
    return res  
  
# initializing list 
test_list = [3, 5, 7, 9, 11] 
  
# printing original list 
print ("The original list is : " + str(test_list)) 
  
# initializing K 
K = 4
  
# using map() + loop + pow() 
# Product of i ^ k in List
res = prod(map(lambda i : pow(i, K), test_list)) 
  
# printing result 
print ("The product of i ^ k of list is : " + str(res)) 
输出 :
The original list is : [1, 3, 5, 7, 9, 11]
The product of i ^ k of list is : 11676104538800625