我想键入字典,但是如果密钥不存在,Julia会抛出异常。为了避免出现异常,我首先必须检查字典中是否存在它们的键。
我现在正在使用此自定义功能:
function has_some_key(dict, key)
for (k, v) in dict
if k == key
return true
end
end
return false
end
是否有更好的方法来确定字典是否具有给定键的映射?
答案 0 :(得分:6)
haskey
将检查某些集合是否具有给定键的映射:
julia> d
Dict{Int64,String} with 2 entries:
2 => "two"
1 => "one"
julia> haskey(d, 1)
true
julia> haskey(d, 3)
false
答案 1 :(得分:4)
根据您的用例,可能可行的另一种方法是使用get
提供默认值,以防键不存在:
julia> d = Dict(1 => "one", 2 => "two")
Dict{Int64,String} with 2 entries:
2 => "two"
1 => "one"
julia> get(d, 1, "zero")
"one"
julia> get(d, 3, "zero")
"zero"
还有get!
,它还将存储查询键的默认值。