🗑️

Juliaで配列の要素を削除する

2023/01/09に公開約1,500字

「Julia 配列 要素 削除」のように検索しても意外と引っかからないのでこの記事を書きました. いくつかの例を示します.

最後の要素を削除する

pop!(配列)のようにして, 配列の最後の要素を削除できます.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> pop!(A)
"eeeee"

julia> A
4-element Vector{String}:
 "a"
 "bb"
 "ccc"
 "dddd"

最初の要素を削除する

popfirst!(配列)のようにして, 配列の最初の要素を削除できます.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> popfirst!(A)
"a"

julia> A
4-element Vector{String}:
 "bb"
 "ccc"
 "dddd"
 "eeeee"

1つの要素を削除する

deleteat!(配列, 削除したい要素の番号)のようにして, 指定した要素を削除できます.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> deleteat!(A, 2)
4-element Vector{String}:
 "a"
 "ccc"
 "dddd"
 "eeeee"

連続した要素を削除する

これは2~4番目の要素を削除する例です. 2の部分を2:4のように置き換えています.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> deleteat!(A, 2:4)
2-element Vector{String}:
 "a"
 "eeeee"

連続しない複数の要素を削除する

上記の2:4[2,4]のように置き換えると, 2番目と4番目のみ削除する例となります.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> deleteat!(A, [2,4])
3-element Vector{String}:
 "a"
 "ccc"
 "eeeee"

条件に合う要素を削除する

上記の例で[2,4]としたところをfindall(x->length(x)<3,A)のように置き換えます. これは3文字未満の要素を削除する例です.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> deleteat!(A, findall(x->length(x)<3,A))
3-element Vector{String}:
 "ccc"
 "dddd"
 "eeeee"

条件に合う要素を抜き出して別の配列にする

配列を変更せず, B=A[[1,2]]のようにして別の配列として保存することもできます.

julia> A = ["a", "bb", "ccc", "dddd", "eeeee"]

julia> B = A[findall(x->length(x)<3,A)]
2-element Vector{String}:
 "a"
 "bb"

Discussion

ログインするとコメントできます