Dicionários

Julia intermediário

Anthony Markham

Quantitative Developer

Dicionários - introdução

  • Uma coleção de pares "chave-valor".
  • Cada valor é acessado pela chave correspondente.
  • Tipos de dados mistos são permitidos.
Julia intermediário

Dicionários - por que são úteis?

  • Acesse valores por uma chave — muito mais intuitivo
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# Definição de dicionário
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia intermediário

Dicionários - sem tipo

  • Palavra-chave Dict para definir um dicionário
  • Chave => valor
  • Separe pares chave/valor com vírgula
stock = Dict("ticker" => "AAPL", "price" => 131.86)
Dict{String, Any} with 2 entries:
  "ticker" => "AAPL"
  "price"  => 131.86
  • Note que os tipos de dados são mistos e não pré-definidos.
Julia intermediário

Dicionários - tipados

  • Dicionários tipados obrigam chave ou valor a ter um certo tipo de dado.
stock_typed = Dict{String, Integer}("ticker" => "AAPL", "price" => 131.86)
MethodError: Cannot `convert` an object of type String to an object of type Integer
stock_typed = Dict{String, Any}("ticker" => "AAPL", "age" => 131.86)
Dict{String, Any} with 2 entries:
  "ticker" => "AAPL"
  "age"    => 131.86
Julia intermediário

Dicionários - iteração

  • Iterar é semelhante a outras estruturas de dados que já vimos.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
for i in stock
    println(i)
end
Pair{String, Any}("ticker", "AAPL")
Pair{String, Any}("price", 131.86)
Julia intermediário

Dicionários - iteração sobre chaves e valores

  • keys() e values() retornam as chaves e os valores de um dicionário.
for i in keys(stock)
    println(i)
end
ticker
price
Julia intermediário

Dicionários - iteração via desempacotamento de tupla

  • Desempacotar tuplas de chaves e valores é outra forma de iterar em um dicionário.
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia intermediário

Dicionários - get()

  • Use get() para obter o valor de uma chave.
get(dictionary_name, dictionary_key, default_value)
  • O último argumento é o valor padrão, retornado se a chave não existir.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • Se não informarmos o valor padrão e a chave não existir, ocorre erro.
Julia intermediário

Dicionários - modificação

  • Podemos adicionar novas chaves, alterar valores e remover chaves.
# Adicionar uma nova chave
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# Modificar um valor existente
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia intermediário

Vamos praticar!

Julia intermediário

Preparing Video For Download...