配列(リスト)から先頭のn個を除く残りを配列で取得するには 2021/03/04
Scala、PHP、Go言語、Ruby、Pythonでの配列(リスト)から先頭のn個を除く残りを配列で取得する方法。
Scala 2021/03/04
def Seq[A]#drop(n: Int): Seq[A]
結果を新しいリストで返し、自身は変更しない。
例
val lst = List(10, 20, 30, 40, 50);
val result = lst.drop(2);
println(result);
// => List(30, 40, 50)
PHP 2016/11/28
array_slice($arr, $n)
のようにする。
$arr = array(10, 20, 30, 40, 50);
$n = 2;
var_export(array_slice($arr, $n));
// 出力結果
// array (
// 0 => 30,
// 1 => 40,
// 2 => 50,
// )
array_slice
は結果を新しい配列で返し、引数の配列を変更しない。
Go言語 (golang) 2016/11/28
配列もスライスも [n:]
というスライス表記で先頭のn個を除く部分をスライスで取得することができる。元が配列であってもスライスになる。
n := 2
arr := [...]int{10, 20, 30, 40, 50} // (配列)
fmt.Printf("%#v\n", arr[n:])
// => []int{30, 40, 50} (スライス)
sl := []int{10, 20, 30, 40, 50} // (スライス)
fmt.Printf("%#v\n", sl[n:])
// => []int{30, 40, 50} (スライス)
Ruby 2015/01/05
Enumerable#drop
メソッドを使う。これは非破壊的なメソッド。Array
はEnumerable
をインクルードしているので、配列でもEnumerable
のメソッドを使える。
arr.drop(n)
またはスライスを使う。
arr.slice(n, arr.size - n)
# または
arr[n, arr.size - n]
# または
arr.slice(n .. arr.size)
# または
arr[n .. arr.size]
上の2つの書き方は、2つ目の引数が配列の後ろの境界を超えてもエラーを出さないようなので、以下でも同じ。
arr.slice(n, arr.size)
# または
arr[n, arr.size]
Enumerable#drop
| Ruby 2.1 リファレンスマニュアル
Python 2015/01/15
スライス表記でできる。
lst = [10, 20, 30, 40, 50]
print(lst[2:])
# => [30, 40, 50]
sh (シェルスクリプト) 2015/01/29
配列ではないが、テキストファイルに関しては、tail
コマンドを使うと、最初のn行を削除する処理をできる。
-n
オプションの後に +
と数字をつけると、その行番号から後ろだけを出力してくれる。従って先頭の2行を削除するには3行目から出力すればよいので、 -n+3
と指定する。
# 最初の2行を除く後続の行を出力
tail -n+3 foo.txt
sed
コマンド でもできる。
# 2行目から最後まで抽出
sed -n '2,$p' foo.txt
# または
sed -n 2,\$p foo.txt
関連
1個 | n個 | |
最初の○○以外の要素を取得するには | tail | drop |
最初の○○の要素を取得するには | head | take |
最後の○○の要素を取得するには | last |