Dizionari

Julia intermedio

Anthony Markham

Quantitative Developer

Dizionari - introduzione

  • Collezione di coppie chiave-valore.
  • Ogni valore si accede tramite la sua chiave.
  • Tipi di dato misti consentiti.
Julia intermedio

Dizionari - perché sono utili?

  • Accedi ai valori con una chiave: molto più intuitivo
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# Definizione di un dizionario
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia intermedio

Dizionari - non tipizzati

  • Parola chiave Dict per definire un dizionario
  • Chiave => valore
  • Separa le coppie con una virgola
stock = Dict("ticker" => "AAPL", "price" => 131.86)
Dict{String, Any} con 2 elementi:
  "ticker" => "AAPL"
  "price"  => 131.86
  • Nota: i tipi sono misti e non predefiniti.
Julia intermedio

Dizionari - tipizzati

  • I dizionari tipizzati impongono un tipo a chiavi o valori.
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} con 2 elementi:
  "ticker" => "AAPL"
  "age"    => 131.86
Julia intermedio

Dizionari - iterazione

  • L’iterazione è simile ad altre strutture dati note.
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 intermedio

Dizionari - iterare su chiavi e valori

  • keys() e values() restituiscono le chiavi e i valori di un dizionario.
for i in keys(stock)
    println(i)
end
ticker
price
Julia intermedio

Dizionari - iterazione con tuple unpacking

  • Lo “spacchettamento” di tuple di chiavi e valori è un altro modo per iterare su un dizionario.
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia intermedio

Dizionari - get()

  • Usa get() per ottenere il valore di una chiave.
get(dictionary_name, dictionary_key, default_value)
  • L’ultimo argomento è il valore predefinito, cioè il risultato se la chiave non esiste.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • Se non specifichi il valore predefinito e la chiave non c’è, ottieni un errore.
Julia intermedio

Dizionari - modifiche

  • Puoi aggiungere chiavi, modificare valori e cancellare chiavi.
# Aggiungi una nuova chiave
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# Modifica un valore esistente
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia intermedio

Passiamo alla pratica !

Julia intermedio

Preparing Video For Download...