配列(リスト)の先頭以外の残りの要素を配列で取得するには

Scala、PHP、Go言語、Rubyでの配列(リスト)の先頭以外の残りを配列で取得する方法。

Scala seq.tail
PHP array_slice($arr, 1)
Go言語 arr[1:], sl[1:]
Ruby arr.drop(1)
Python lst[1:]

Scala

def Seq[A]#tail: Seq[A]

val lst = List(10, 20, 30, 40, 50);

println(lst.tail);
// => List(20, 30, 40, 50)

PHP

array_slice($arr, 1) のようにする。

$arr = array(10, 20, 30, 40, 50);

var_export(array_slice($arr, 1));
// 出力結果
// array (
//   0 => 20,
//   1 => 30,
//   2 => 40,
//   3 => 50,
// )

array_slice は結果を新しい配列で返し、引数の配列を変更しない。

array_slice 関数 | PHP Manual

Go言語 (golang)

[1:] というスライス表記を使えば先頭を除く2つ目以降の要素からなるスライスを取得できる。配列・スライスどちらに対しても使えるが、配列に対して [1:] と書いても結果はスライスになる。

arr := [...]int{10, 20, 30, 40, 50} // (配列)
fmt.Printf("%#v\n", arr[1:])
// => []int{20, 30, 40, 50}            (スライス)

sl := []int{10, 20, 30, 40, 50}     // (スライス)
fmt.Printf("%#v\n", sl[1:])
// => []int{20, 30, 40, 50}            (スライス)

Ruby

Array#drop を使えばできる。これは非破壊的なメソッド。

arr = [10, 20, 30, 40, 50]

p arr.drop(1)
# => [20, 30, 40, 50]

sh

テキストファイルの2行目以降を取得する方法

sed 1d foo.txt # foo.txt の 1行目を除いた部分を出力
# または
tail -n+2 foo.txt # foo.txt の 2行目以降を出力の意味

関連

1個 n個
最初の○○以外の要素を取得するには tail drop
最初の○○の要素を取得するには head take
最後の○○の要素を取得するには last
このサイトは個人メモの集合です。
スポンサーリンク