我正在尝试编写一个简单的程序,使用 Julia 来测试数组的所有元素是否相同。在 Julia 中有一种简单的方法可以做到这一点吗?
最佳答案
allunique
测试数组的所有元素是否唯一。为了测试数组的所有元素是否相同,您可以编写例如:
function allequal(itr)
local x
isfirst = true
for v in itr
if isfirst
x = v
isfirst = false
else
isequal(x, v) || return false
end
end
return true
end
现在你有
julia> allequal([1,2,3])
false
julia> allequal([1,2,1])
false
julia> allequal([1,1,1])
true
你可以写一个更短的函数,例如:
f1(itr) = length(Set(itr)) <= 1
但它可能会更慢(我没有运行基准测试)。
或者你可以这样写:
f2(itr) = length(itr) == 0 ? true : all(isequal(itr[1]), itr)
如果您的迭代器定义了 length
并支持索引。
关于julia - 如何在 Julia 中测试数组中的所有元素是否具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59426204/