裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia の iterator

2021年01月18日 | ブログラミング

Python でも使われる enumerate(), zip() の他にもいろいろある。

julia> A = 1:5
julia> B = ["one", "two", "three", "four", "five"]

タプルで取り出す場合は,変数 1 個を使う。取り出した後はタプルとして使ってもよいし,ここの変数へバラしてから使ってもよい。

julia> for c in zip(A, B)
           a, b = c
           println("$c, $a, $b")
       end
(1, "one"), 1, one

(2, "two"), 2, two
(3, "three"), 3, three
(4, "four"), 4, four
(5, "five"), 5, five

各要素へ取り込む場合は,Python と異なり,(  ) でくくらないとエラーになる。

julia> for (a, b) in zip(A, B)
           println("$a, $b")
       end
1, one
2, two
3, three
4, four
5, five

enumerate() も,取り出し変数は (  ) でくくること。

julia> for (index, value) in enumerate(B)
           println("$index, $value")
       end
1, one
2, two
3, three
4, four
5, five

面白そうな iterator を一つあげておく。汎用の outer 関数を作るときに使えるかな??

julia> a = collect(Iterators.product(1:2, 3:5))
2×3 Array{Tuple{Int64,Int64},2}:
 (1, 3)  (1, 4)  (1, 5)
 (2, 3)  (2, 4)  (2, 5)

julia> println(a)
[(1, 3) (1, 4) (1, 5); (2, 3) (2, 4) (2, 5)]

julia> for x in a
           println(x)
       end
(1, 3)

(2, 3)
(1, 4)
(2, 4)
(1, 5)
(2, 5)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Julia で微分 | トップ | Julia で順列,組み合わせなど »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事