配列(リスト)から特定の要素をインデックスで指定して削除するには (delete_at / pop / remove / unset)

配列(リスト)からインデックスで要素を指定して削除する方法。

関連

Java

Signature:

Scala

Signature:

PHP

PHPの配列は連想配列と区別されないので、連想配列と同じくunsetで要素を削除することはできるが、削除した要素のより後ろの要素のインデックスが前に詰められることはない。前に詰めるためには array_values を使う。

$arr = array(10, 20, 30);
unset($arr[1]);
var_export($arr);
# => array (
#      0 => 10,
#      2 => 30,
#    )

$arr = array_values($arr);
var_export($arr);
# => array (
#      0 => 10,
#      1 => 30,
#    )

array_values 関数 | PHP Manual
http://php.net/manual/ja/function.array-values.php

Python

リストの指定のインデックスの要素を取得し、削除して詰める。

lst.pop(index)
# または
del(lst[index])

popは引数を指定しないと最後の要素を取得して削除する。(->pop)

Ruby / JRuby

Array#delete_at でできる。 要素を取得する [] と同様に負を指定すると後ろから数えてくれる。

arr = [10, 20, 30, 40, 50]
arr.delete_at(3)
p arr
# => [10, 20, 30, 50]

Array#deleteはインデックスではなくて値で指定して削除する。

Array#delete_at | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/delete_at.html

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク