Python - 索引匹配元素乘积

pythonserver side programmingprogramming更新于 2023/12/29 19:56:00

索引匹配元素乘积指的是两个不同的列表,其中包含元素并设置为相应的变量。如果找到共同匹配项,则通过乘法过滤元素。为了解决这个问题,Python 有一些内置函数,例如 range()、len()、zip()、prod()、reduce() 和 lambda()。

让我们举个例子。

给定的输入列表:

list_1 = [10, 20, 30, 40]

list_2 = [10, 29, 30, 10]

因此,在索引 0 和 2 中找到的公共匹配及其乘积变为 10*30 = 300。

语法

示例中使用了以下语法

range()

range() 是 Python 中的一个内置函数,它根据给定的返回数字序列范围。

len()

len() 是 Python 中内置的函数,用于返回对象的长度。

zip()

内置函数

prod()

prod() 是 Python 中内置的函数,用于返回所有元素的乘积。

reduce()

reduce 是 Python 中的内置方法,它遵循 functools 模块,通过接受两个参数(函数和可迭代对象)来返回单个值。

lambda()

函数 lambda 提供了一种使用 lambda 关键字声明简短匿名函数的快捷方式。lambda 函数只有一个表达式。

使用 for 循环

在下面的例子中,我们将通过在相应的变量中创建两个列表来启动程序。然后将初始值 p 设置为 1,该值将用于具有列表元素的产品。接下来,使用 for 循环通过使用内置函数 len() 遍历第一个输入列表。使用 if 语句检查第一个索引列表是否与第二个索引列表匹配。如果找到共同的匹配项,则通过乘以 1 来过滤这些列表元素,从而简化输出。

示例

lst1 = [10, 20, 30, 40, 50, 60]
lst2 = [10, 34, 3, 89, 7, 60]
p = 1
for i in range(len(lst1)):
    if lst1[i] == lst2[i]:
        p *= lst1[i]
print("索引匹配元素 Product 的结果:\n", p)

输出

索引匹配元素 Product 的结果:
600

使用列表推导和 zip() 函数

在下面的例子中,程序使用列表推导,其中 zip() 方法将两个不同的列表组合在一起以找到共同的匹配项。如果两个列表中的公共元素匹配,则通过对这些元素进行乘积来返回过滤结果。

示例

# 使用列表推导和 zip()
lst1 = [10, 20, 30, 40, 50, 60]
lst2 = [10, 34, 30, 89, 7, 60]
# 初始化 Product 的初始值
product = 1
match_item = [x for x, y in zip(lst1, lst2) if x == y]
# 使用 if 语句迭代匹配元素
if match_item:
    product = 1
    for element in match_item:
        product *= element
print("索引匹配元素 Product 的结果:\n", product)

输出

索引匹配元素的结果乘积:
18000

使用 Numpy 库

在下面的示例中,程序使用 numpy 库和对象引用作为 np。然后创建两个列表,用于查找公共索引元素。接下来,将列表转换为相应变量中的数组,该变量将用作元素数组。现在从两个数组中找到公共索引元素,并使用 prod() 将所有公共元素相乘并显示结果。

示例

import numpy as np
# 创建列表
lst1 = [10, 20, 30, 40, 50, 60]
lst2 = [10, 34, 30, 89, 50, 6]
# 将列表转换为数组
arr1 = np.array(lst1)
arr2 = np.array(lst2)
# 设置匹配元素的条件
match_item = arr1[arr1 == arr2]
prod_idx = np.prod(match_item)
# 显示结果
print("索引匹配元素 Product 的结果:\n", prod_idx)

输出

索引匹配元素 Product 的结果:
15000

使用 Functools 库

pip install functools

上述命令需要在系统上安装才能运行基于 functools 的特定程序。

在下面的例子中,使用 functools 库启动程序并定义名为 reduce 的模块,该模块将计算索引匹配元素。然后使用列表推导,其中 zip() 函数包含两个列表,用于设置等价条件以查找公共匹配项。接下来,使用一些内置函数 - reduce()、lambda 和 if-set 根据匹配元素的乘积设置条件。最后,显示结果。

示例

from functools import reduce
# 创建列表
lst1 = [10, 20, 30, 40, 7, 60]
lst2 = [10, 34, 30, 89, 7, 60]
# 根据匹配元素设置条件
matching_elements = [x for x, y in zip(lst1, lst2) if x == y]
prod_idx = reduce(lambda x, y: x * y, matching_elements) if matching_elements else 1
# 显示乘积
print("索引匹配元素 Product 的结果:\n", prod_idx)

输出

索引匹配元素 Product 的结果:
126000

结论

索引匹配元素是可以使用一些特定条件和操作(如numpy库,functools库,列表理解和for循环)进行过滤的常见元素。有一些与此程序相关的应用程序,例如数据分析和数据过滤。


相关文章