本文へスキップ

第3章 配列とリスト

配列とリスト

#配列への代入

@score = (45, 59, 74)

#以下のように配列に代入されます。
@score[0]   @score[1] @score[2] 
 45 59  74 
 

#配列の追加

@score[3] = 98

@score[0]   @score[1] @score[2]  @score[3] 
 45 59  74   98


#合計値の計算

@score = (45, 59, 74);
$sum =0;
foreach $item (@score) {
$sum = $sum + $item;   (=$sum += $item でもOK)
}
print $sum
→178

#foreachの変数の省略

foreach (@score) {
$sum += $_;
}

#文字列の代入

#以下の2つは同じ意味を示す。
@DNA = ('A', 'T', 'G', 'C');
@DNA = qw(A T G C);

print "@DNA\n"
→A T G C

print @DNA, "\n"
→ATGC

#配列の要素数を調べる

@DNA = ('A', 'T', 'G', 'C');
$length = @DNA


#join関数(配列の間に埋め込む)

@DNA = ('A', 'T', 'G', 'C');
print join('塩基', @DNA), "\n";
→A塩基T塩基G塩基C

#split関数 (文字列をリストにする)

$DNA = (A T G C);
@DNA = split (/ /, $DNA);
print "@DNA";
 @DNA[0]  @DNA[1]  @DNA[2]  @DNA[3]
 A

#push関数(配列の最後に要素を加える)

@DNA = ('A', 'T', 'G', 'C');
push (@DNA, 'A');
print "@DNA\n";
→A T G C A

@RNA = ('A', 'U', 'G', 'C');
push (@DNA, @RNA);
print "@DNA\n";
→A T G C A U G C

#pop関数(配列の最後の要素を取り除く)

@DNA = ('A', 'T', 'G', 'C');
$item = pop(@DNA);
print @DNA, "\n";
→A T G
print $item,"\n"
→C

#shift関数(配列の最初の要素を取り除く)

@DNA = ('A', 'T', 'G', 'C');
$item = shift(@DNA);

 @DNA[0]  @DNA[1]  @DNA[2]
 T

#unshift関数(配列の最初に要素を加える)

@DNA = ('A', 'T', 'G', 'C');
@item = unshift(@DNA, 'A');

 @DNA[0]  @DNA[1]  @DNA[2]  @DNA[3]   @DNA[4]
 A  C

#splice関数 (途中の要素を操作する)
#使い方1:splice (array, offset, length, list)

@DNA =('A', 'T', 'G', 'C');
@RNA = ('A', 'U', 'G', 'C');
@remove = splice(@DNA, 1, 3, @RNA)
print @DNA, "\n";
→A A U G C
print @remove, "\n";
→T G C

#使い方2:splice (array, offset, length)

@DNA =('A', 'T', 'G', 'C');
@remove = splice(@DNA, 1, 3)
print @DNA, "\n";
→A
print @remove, "\n";
→T G C


#使い方3:splice (array, offset)

@DNA =('A', 'T', 'G', 'C');
@remove = splice(@DNA, 1)
print @DNA, "\n";
→A
print @remove, "\n";
→T G C
#長さが指定されていないので,最後まで

#使い方4:splice (array)

@DNA =('A', 'T', 'G', 'C');
@remove = splice(@DNA)
print @DNA, "\n";

print @remove, "\n";
→A T G C

#sort関数

@DNA =('A', 'T', 'G', 'C');
@sort = sort(@DNA);
print @sort,"\n";
→ A C G T

#数字の場合
@sort = sort {$a <=> $b} @array;

#reverse関数

@DNA =('A', 'T', 'G', 'C');
@sort = reverse(@DNA);
print @sort,"\n";
→ T G C A




inserted by FC2 system