Есть несколько способов сделать это. Предположим, что это ваш словарь:
d = Dict(
"aardvark" => 1,
"bear" => 2,
"cat" => 3,
"dog" => 4,
)
Если у вас есть ключ, вы можете проверить его наличие с помощью функции haskey
:
julia> haskey(d, "cat")
true
julia> haskey(d, "zebra")
false
Несколько более причудливый способ проверить это:проверить, находится ли ключ в наборе ключей, возвращаемых путем вызова keys(d)
:
julia> ks = keys(d)
Base.KeySet for a Dict{String,Int64} with 4 entries. Keys:
"aardvark"
"bear"
"cat"
"dog"
julia> "cat" in ks
true
julia> "zebra" in ks
false
Наконец, довольно часто вы хотите получить значение, связанное с ключом, если оно присутствует в словаре,Вы можете сделать это как отдельный шаг, выполнив d[k]
после проверки, что k
присутствует в keys(d)
, но это требует дополнительного поиска в словаре. Вместо этого, если есть какое-то значение часового, которое, как вы знаете, не может быть значением в вашем словаре, например nothing
, вы можете использовать функцию get
для поиска ключа со значением по умолчанию:
v = get(d, k, nothing)
if v !== nothing
# keys(d) contains k
end
Если вы ничего не знаете о типах значений, с которыми d
может сопоставить ключи, это небезопасный вариант, поскольку в этом случае пара k => nothing
присутствует в d
.