Słowniki

Julia średnio zaawansowana

Anthony Markham

Quantitative Developer

Słowniki – wprowadzenie

  • Kolekcja par klucz–wartość.
  • Dostęp do wartości odbywa się za pomocą odpowiedniego klucza.
  • Dozwolone są mieszane typy danych.
Julia średnio zaawansowana

Słowniki – dlaczego są przydatne?

  • Dostęp do wartości przez klucz – znacznie bardziej intuicyjny
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# Dictionary definition
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia średnio zaawansowana

Słowniki – bez typowania

  • Słowo kluczowe Dict do definiowania słownika
  • Klucz => wartość
  • Pary klucz/wartość oddzielamy przecinkiem
stock = Dict("ticker" => "AAPL", "price" => 131.86)
Dict{String, Any} with 2 entries:
  "ticker" => "AAPL"
  "price"  => 131.86
  • Typy danych są mieszane i nie są z góry określone.
Julia średnio zaawansowana

Słowniki – z typowaniem

  • Typowane słowniki wymuszają określony typ danych dla klucza lub wartości.
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 średnio zaawansowana

Słowniki – iteracja

  • Iteracja przebiega podobnie jak w przypadku innych znanych struktur danych.
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 średnio zaawansowana

Słowniki – iteracja po kluczach i wartościach

  • keys() i values() zwracają klucze i wartości słownika.
for i in keys(stock)
    println(i)
end
ticker
price
Julia średnio zaawansowana

Słowniki – iteracja przez rozpakowywanie krotek

  • Rozpakowywanie krotek to kolejny sposób iteracji po słowniku.
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia średnio zaawansowana

Słowniki – get()

  • Użyj get(), aby pobrać wartość dla danego klucza.
get(dictionary_name, dictionary_key, default_value)
  • Ostatni argument to wartość domyślna – zwracana, gdy klucz nie zostanie znaleziony.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • Jeśli nie podamy wartości domyślnej i klucz nie istnieje, wystąpi błąd.
Julia średnio zaawansowana

Słowniki – modyfikacja

  • Można dodawać nowe klucze, modyfikować wartości i usuwać klucze.
# Add a new key
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# Modify an existing value
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia średnio zaawansowana

Czas na ćwiczenia!

Julia średnio zaawansowana

Preparing Video For Download...