字典

Julia 中级

Anthony Markham

Quantitative Developer

字典——简介

  • 由"键-值"对组成。
  • 通过对应的键访问值。
  • 允许混合数据类型。
Julia 中级

字典——为何有用?

  • 用键访问值,更直观
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# 定义字典
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia 中级

字典——无类型约束

  • 用 Dict 关键字定义字典
  • 键 => 值
  • 用逗号分隔键值对
stock = Dict("ticker" => "AAPL", "price" => 131.86)
含 2 个条目的 Dict{String, Any}:
  "ticker" => "AAPL"
  "price"  => 131.86
  • 注意数据类型可混合,且无需预先定义。
Julia 中级

字典——有类型约束

  • 有类型的字典会限制键或值为指定数据类型。
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)
含 2 个条目的 Dict{String, Any}:
  "ticker" => "AAPL"
  "age"    => 131.86
Julia 中级

字典——遍历

  • 遍历方式与熟悉的其他数据结构相似。
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 中级

字典——遍历键和值

  • keys()values() 返回字典的键和值。
for i in keys(stock)
    println(i)
end
ticker
price
Julia 中级

字典——通过元组解包遍历

  • 通过元组解包键和值也是遍历字典的一种方式。
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia 中级

字典——get()

  • 使用 get() 按键获取值。
get(dictionary_name, dictionary_key, default_value)
  • 最后一个参数是默认值:当找不到键时返回它。
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • 若不提供默认值且键不存在,将报错。
Julia 中级

字典——修改

  • 可新增键、修改值、删除键。
# 添加新键
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# 修改已有值
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia 中级

开始练习!

Julia 中级

Preparing Video For Download...