LoginSignup
1
0

More than 1 year has passed since last update.

Pair

Last updated at Posted at 2022-09-26

イントロ

JuliaにはPairというデータ構造がある。よく知らなかったのでメモ。

Pair

PairというのはJuliaのコレクションのひとつで、二つのものをまとめるために使われる。

Pair(x, y)

あるいは

x=>y

Pair{typeof(x), typeof(y)}型のPairオブジェクトが生成される。二つの記法は完全に等価である。

Pair(x, y) == (x=>y)  # true

それぞれの変数にはfirst, secondという名前のfieldに格納されている。

x,y = 1,2
mypair = x=>y
typeof(mypair)  # Pair{Int64, Int64}
mypair.first  # 1
mypair.second  # 2

また、iterationを通じて各変数にアクセスすることもできる。

x,y = 1,2
mypair = x=>y
for v in mypair 
  println(v)
end

とすれば、1,2が順に表示される。

(しかし、ブロードキャストする際には、1つのペアは1つのscalarとして扱われる)

Pairが関連するあれこれ

Pairを使う場面はたくさんある。関連するデータ構造などをメモっておく。

Dict

Dictを作る際には、

mydict = Dict{String,Int}()
mydict["A"] = 123

などとしてまず空のDictを作ってから要素を追加することもできるが、キーと値のペアを渡すことで作ることもできる

mydict = Dict("A"=>123)
mydict["A"]  # 123

Fluxのレイヤーを作るときの入出力サイズ

深層学習フレームワークであるFlux.jlでレイヤーを作るときに

Dense(10=>5)

とかすると思うが、これの10=>5はPairである。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0