Woordenboeken

Julia voor gevorderden

Anthony Markham

Quantitative Developer

Dictionaries - introductie

  • Een verzameling 'key-value'-paren.
  • Elke waarde is toegankelijk via de bijbehorende key.
  • Gemengde datatypes zijn toegestaan.
Julia voor gevorderden

Dictionaries - waarom nuttig?

  • Toegang via een key is veel intuïtiever
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# Dictionary-definitie
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia voor gevorderden

Dictionaries - ongetypt

  • Dict-keyword om een dictionary te definiëren
  • Key => value
  • Scheid key/value-paren met een komma
stock = Dict("ticker" => "AAPL", "price" => 131.86)
Dict{String, Any} met 2 entries:
  "ticker" => "AAPL"
  "price"  => 131.86
  • Let op: datatypes zijn gemengd en niet vooraf gedefinieerd.
Julia voor gevorderden

Dictionaries - getypt

  • Getypte dictionaries dwingen een type af voor key of value.
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} met 2 entries:
  "ticker" => "AAPL"
  "age"    => 131.86
Julia voor gevorderden

Dictionaries - itereren

  • Itereren lijkt op andere bekende datastructuren.
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 voor gevorderden

Dictionaries - itereren over keys en values

  • keys() en values() geven de sleutels en waarden van een dictionary.
for i in keys(stock)
    println(i)
end
ticker
price
Julia voor gevorderden

Dictionaries - itereren via tuple-unpacking

  • Tuple-unpacking van keys en values is een andere manier om te itereren over een dictionary.
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia voor gevorderden

Dictionaries - get()

  • Gebruik get() om de waarde voor een key op te halen.
get(dictionary_name, dictionary_key, default_value)
  • Het laatste argument is de standaardwaarde: de returnwaarde als de key niet bestaat.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • Als je geen standaardwaarde meegeeft en de key ontbreekt, krijg je een fout.
Julia voor gevorderden

Dictionaries - wijzigen

  • Je kunt keys toevoegen, waarden wijzigen en keys verwijderen.
# Nieuwe key toevoegen
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# Bestaande waarde wijzigen
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia voor gevorderden

Laten we oefenen!

Julia voor gevorderden

Preparing Video For Download...