Python 内射的reduce函数的例子?

Python 内射的reduce函数的例子?,python,mapreduce,reduce,injective-function,Python,Mapreduce,Reduce,Injective Function,有没有找到内射的常见映射约简函数的来源?(此类功能是否有名称?) 例如,我需要映射一个数字列表 lst = [1,2,3,4] 转换为元组(和、积) 但此映射不是内射的,因为它列出了: x = [1,2,3,4] y = [4,3,2,1] 产生同样的结果 我并不特别关心反转那些函数的“困难”,但是不同的源代码对于简单的和硬的可逆函数是有帮助的 此外,如果结果不会在范围内“爆炸”,那就太好了。例如,函数: def mapper(lst): res = 1 for e, pri

有没有找到内射的常见映射约简函数的来源?(此类功能是否有名称?)

例如,我需要映射一个数字列表

lst = [1,2,3,4]
转换为元组(和、积)

但此映射不是内射的,因为它列出了:

x = [1,2,3,4]
y = [4,3,2,1]
产生同样的结果

我并不特别关心反转那些函数的“困难”,但是不同的源代码对于简单的和硬的可逆函数是有帮助的

此外,如果结果不会在范围内“爆炸”,那就太好了。例如,函数:

def mapper(lst):
    res = 1
    for e, prime in zip( lst, prime_number_generator() ):
        res *= prime**e
是map reduce,也是内射的,但结果是:

res = 2^1 * 3^2 * 5^3 * 7^4 = 2 * 9 * 125 * 2401 = 5402250 # too large number

很清楚为什么和和积不是内射的:它可以相互转换。例如,
[1,2]
[2,1]
给出了相同的结果。所以你们看到的运算至少是不可交换的。而且,很明显,没有单位,我指的是一个数a,对于任何其他的数x,Ax=xA=x。虽然这个问题从抽象代数的章节中得到了一些不那么容易的东西,您需要知道,在长度不同的列表上,映射是否需要是内射的。
def mapper(lst):
    res = 1
    for e, prime in zip( lst, prime_number_generator() ):
        res *= prime**e
res = 2^1 * 3^2 * 5^3 * 7^4 = 2 * 9 * 125 * 2401 = 5402250 # too large number