Python – 元组列表中的第 K 列产品
有时,在使用Python列表时,我们可能会有一个任务,我们需要使用元组列表并获取它的第 K 个索引的乘积。在处理数据信息时,此问题在 Web 开发领域有应用。让我们讨论可以执行此任务的某些方式。
方法#1:使用列表理解+循环
可以使用上述功能的组合来执行此任务。在此,索引的乘积使用显式乘积函数发生,列表理解驱动列表中每个元组的第 K 个索引元素的迭代和访问。
# Python3 code to demonstrate working of
# Tuple List Kth Column Product
# using list comprehension + loop
# getting Product
def prod(val) :
res = 1
for ele in val:
res *= ele
return res
# initialize list
test_list = [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
# printing original list
print("The original list is : " + str(test_list))
# initialize K
K = 2
# Tuple List Kth Column Product
# using list comprehension + loop
res = prod([sub[K] for sub in test_list])
# printing result
print("Product of Kth Column of Tuple List : " + str(res))
输出 :
The original list is : [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
Product of Kth Column of Tuple List : 665
方法#2:使用imap()
+ loop + itemgetter()
以上功能的组合也可以完成这个任务。这种方法是基于生成器的,建议在我们有一个非常大的列表的情况下使用。在此,product函数用于执行产品,itemgetter 获取第 K 个索引,imap() 执行映射元素以提取产品的任务。仅适用于 Python2。
# Python code to demonstrate working of
# Tuple List Kth Column Product
# using imap() + loop + itemgetter()
from operator import itemgetter
from itertools import imap
# getting Product
def prod(val) :
res = 1
for ele in val:
res *= ele
return res
# initialize list
test_list = [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
# printing original list
print("The original list is : " + str(test_list))
# initialize K
K = 2
# Tuple List Kth Column Product
# using imap() + loop + itemgetter()
idx = itemgetter(K)
res = prod(imap(idx, test_list))
# printing result
print("Product of Kth Column of Tuple List : " + str(res))
输出 :
The original list is : [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
Product of Kth Column of Tuple List : 665