リスト(配列)

配列の値をキーにしたハッシュを作成する

配列Aに入っている全ての値を、ハッシュHのキーにしたい。これは一行で解決する。

配列の要素数を調べる

配列に今どれだけの要素が詰まっているかカウントしたい。これには大きく二つの方法が用意されている。

配列を結合(連結)する

二つの配列を結合(連結)し、合体させたい。

配列をコピーする

配列Aの内容を配列Bにそのままコピーしたいが、どうすれば良いだろうか?

配列の一部を置換する(splice)

配列の一部だけを簡単に置換してくれる関数がspliceである。

リスト(配列)を逆順に並べ替える (reverse)

リスト(配列)を逆に並べ替えるお手軽な方法はreverseを用いることだ。

配列に値を追加する(push, unshift)

配列の先頭、または末尾から値を追加するにはpushunshiftを用いれば良い。

配列から値を取り出す(pop, shift)

配列の先頭、または末尾から値を取り出すにはpop, shiftを用いれば良い。

配列を初期化する

配列を初期化するにはいくつかの方法がある。

合計値を取得する

リスト(配列)内の数値をすべて合算した値を取得したい。

最小値を取得する

とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか?

最大値を取得する

とあるリスト(配列)から最大値を取得するにはどうすれば良いだろうか?

配列(リスト)から重複を取り除く

配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。

配列をシャッフルしたい (ランダムな順列)

配列(リスト)を順不同に並べ替えたい。
トランプで言う「シャッフル」、アルゴリズム的な用語を使うと「ランダムな順列」に該当する。

特定の項目でソートする (Perl, リスト, 並べ変え)

以下のような配列がある時、2番目の項目で並べ替えがしたい。
単純に sort @array しただけではできない。

@array = ( '1,b,c'
             , '3,c,b'
             , '2,a,a'
);

配列,リストからある条件と一致した値を取出す (Perl, grep)

あるリストから、希望する条件に一致した値だけを取り出したい場合がある。for,while,foreachなどのループを使う方法以外に、効率の良いやり方が知りたい。

数値の値でソートする (Perl, sort)

以下のようなコードを書くと、文字列として扱われてしまい、意図した結果にならない場合がある。

@array = ( 1, 2, 3, 4, 5, 10, 11, 12 );
foreach(sort @array){
  print ;
  print "\n"
}

○実行結果

1
10
11
12
2
3
4
5

これを回避するコードは次のようなものである。





カテゴリー

クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.