![]() |
1
10
从数学的角度来看,没有元素的积应该产生操作的中性元素。 产品 不管是什么。 例如,对于整数,乘法的中性元素是 一 ,因为 1αa= 对于所有整数 一 . 所以整数的空积应该是 一 . 当实现返回数字列表乘积的python函数时,自然会发生这种情况:
对于用该算法计算的正确结果,
这个返回值对于函数的目的也是非常合理的。有了一个好的产品功能,您首先是合并两个列表,然后构建元素的产品,或者您首先构建两个单独列表的产品,然后将结果相乘,这都不重要:
如果
现在更复杂了
事实上,
产品的每一个应用程序都会生成一个附加的元组层,这是不可能的,因此甚至不可能有一个真正的中性元素。
对于这个函数,上面的积方程成立:
通过将输入列表打包成元组的附加预处理步骤,
所以
|
![]() |
2
3
正如@sth已经指出的,从数学的观点来看,这种行为是正确的。你真正需要说服自己的是
但元素的数量
我只是想指出这是正确的
实际的
定义以及正确的数学定义;也就是说,在边界情况下,定义最有可能“只起作用”。例如,假设要生成所有长度的字符串
什么时候生产
(什么时候
所以简而言之,这个定义在数学上是合理的,而且往往不是你想要的。这绝对不是巨蟒虫! |
![]() |
rpl · 具有熊猫排列的多个嵌套列表 7 年前 |
![]() |
Tomasz Przemski · 两个列表值之间的选定组合 7 年前 |
![]() |
Pedro Queirós · 无中间结果的Itertools产品 7 年前 |
![]() |
MarcelKlockman · 生成给定条件的列表的所有组合 7 年前 |
![]() |
George Sp · 具有包含重复元组的Python3置换 7 年前 |
![]() |
mbadd · X列表的条件笛卡尔积,导致具有k,v对的dict? 7 年前 |