0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Juliaで学ぶプログラミング入門 コレクション/操作

Last updated at Posted at 2022-12-11

コレクションの操作

Julia は高性能で高速なプログラミング言語です。そのため、Julia では多くの種類のコレクションを扱うことができます。これらのコレクションには、配列やリスト、辞書、タプル、セットなどがあります。

各コレクションには、特定の操作を実行するためのコマンドが用意されています。例えば、配列に要素を追加するためには、push! 関数を使用します。また、辞書に新しい要素を追加するためには、setindex! 関数を使用します。

関数

以下は、Julia コレクションの各操作コマンドの一覧です。

関数 内容
push! 配列に要素を追加する
pop! 配列から要素を削除する
getindex 配列から要素を取得する
setindex! 配列の要素を変更する
in 配列に特定の要素が含まれるかどうかを確認する
haskey 辞書に特定のキーが含まれるかどうかを確認する
get 辞書から特定のキーに対応する値を取得する
delete! 辞書から特定のキーを削除する

これらのコマンドを使用することで、Julia コレクションを効率的に操作することができます。

push!

Julia では、push! 関数を使用することで、配列に要素を追加することができます。この関数は、破壊的な操作(=引数自身の値を更新する)を行うため、関数名の後ろに「!」が付いています。

例えば、次のようにして配列に要素を追加することができます。

# 配列を定義する
my_array = [1, 2, 3]

# push! 関数を使用して、配列に要素を追加する
push!(my_array, 4)

# 追加された要素を確認する
println(my_array)
# [1, 2, 3, 4]

pop!

Julia では、pop! 関数を使用することで、配列から要素を削除することができます。この関数も、破壊的な操作を行うため、関数名の後ろに「!」が付いています。

例えば、次のようにして配列から末尾の要素を削除することができます。

# 配列を定義する
my_array = [1, 2, 3]

# pop! 関数を使用して、配列から末尾の要素を削除する
pop!(my_array)

# 削除された要素を確認する
println(my_array)
# [1, 2]

getindex

Julia では、getindex 関数を使用することで、配列から要素を取得することができます。

例えば、次のようにして配列から 2 番目の要素を取得することができます。

# 配列を定義する
my_array = [1, 2, 3]

# getindex 関数を使用して、配列から 2 番目の要素を取得する
value = getindex(my_array, 2)

# 取得された値を確認する
println(value)
# 2

これは以下と同じです

# 配列から 2 番目の要素を取得する
value = my_array[2]

# 取得された値を確認する
println(value)
# 2

juliaは二次元配列の場合の位置指定は列優先でカウントしていきます

A = [1 2; 3 4]

# 2番目は3であることを確認
println(A[2])
# 3

# 3番目は2であることを確認
println(A[2])
# 2

println(getindex(A, 1))
# 1

# 第2引数は2番目と1番めを取り出すという意味 
println(getindex(A, [2, 1]))
# [3, 1]

# 第2引数は2番目から4番めを取り出すという意味 
println(getindex(A, 2:4))
# [3, 2, 4]

setindex!

Julia では、setindex! 関数を使用することで、配列の要素を変更することができます。この関数も、破壊的な操作を行うため、関数名の後ろに「!」が付いています。

例えば、次のようにして配列から 2 番目の要素を変更することができます。

# 配列を定義する
my_array = [1, 2, 3]

# setindex! 関数を使用して、配列から 2 番目の要素を変更する
setindex!(my_array, 4, 2)

# 変更された値を確認する
println(my_array)
# => [1, 4, 3]

これは以下と同じです

# 配列から 2 番目の要素を変更する
my_array[2] = 5

# 変更された値を確認する
println(my_array)
# [1, 5, 3]

in

in関数は、特定の値が配列等の中に存在するかどうかを判定するものです。

# 配列の中に3が含まれているかどうかを判定する
array = [1, 2, 3, 4, 5]
3 in array
# true

上記の例では、in演算子を使って配列や中に特定の値が含まれているかどうかを判定しています。もし、特定の値が含まれている場合はtrueを返し、含まれていない場合はfalseを返します。

haskey

haskey関数は、特定の値が辞書のkeyの中に存在するかどうかを判定するものです。

# 辞書の中に"apple"というキーが含まれているかどうかを判定する
dictionary = Dict("apple"=>1, "orange"=>2, "banana"=>3)
println(haskey(dictionary, "apple"))
# true

get

辞書のkeyを指定して値を取得します。
get関数の第3引数には、指定したキーが辞書の中に存在しない場合に返すデフォルト値を指定します。

# 辞書から"apple"というキーに対応する値を取得する
dictionary = Dict("apple"=>1, "orange"=>2, "banana"=>3)
println(get(dictionary, "apple",0))
# 1
# 辞書から"pinapple"というキーに対応する値を取得する
println(get(dictionary, "pinapple",0))
# 0  

これはdict[key]と近いですが存在しない場合の処理が異なるます。

#dict[key]形式の場合
dictionary = Dict("apple"=>1, "orange"=>2, "banana"=>3)
println(dictionary["pinapple"])
# ERROR: KeyError: key "pinapple" not found


delete!

delete!関数は、辞書型データ構造から特定のキーに対応する値を削除するための関数です。次のように使用します。
!のある自己破壊型です。

dictionary = Dict("apple"=>1, "orange"=>2, "banana"=>3)
delete!(dictionary, "apple")
prntln(dictionary)
#  "orange" => 2 ,"banana" => 3

参考図書

1から始めるプログラミング

Juliaプログラミングクックブック

天才プログラマー タンメイが教える Julia超入門

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?