如果产品在 Julia 中的空列表上,如何将产品设置为 0?

问题描述

在我的代码中,我使用 Julia 的 prod() 函数对列表的元素进行乘积。但是,有时该列表是空的,在这种情况下,我希望 prod(myList) 只返回 0(或任何固定数字,如 1)。我尝试在网上搜索,但我唯一能找到的就是迭代器或类似的东西。

我使用的是 Julia 版本 1.5.2。

解决方法

简单的三元运算符是否适用于您的情况?

isempty(my_list) ? 0 : prod(my_list)
,

您想要的是不正确/非常规的。 product of the elements of an empty sequence 应为 1,因为这是乘法标识元素。

,

“任意固定号码”很简单:

reduce(*,ls; init=1)

但这对零不起作用,因为这是一个歼灭者并将整个产品发送到零:

julia> ls = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> reduce(*,ls; init=0)
0

现在,如果您只有整数,则返回 1 然后检查它是否有效。不是只要你有一个有理数的乘积,因为那样产生的 1 也可能源于 x * (1/x)

,
julia> zeroprod(x) = isempty(x) ? zero(eltype(x)) : prod(x)
zeroprod (generic function with 1 method)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...