Hatena::ブログ(Diary)

tachikawa844の日記

2008-12-03

文字列処理関数

| 16:41

perlでは文字列の一部を切り出すときにはsubstr関数を使うようで、

例えば'Good morning'という文字列の最初の4文字を得るときは

my $s = substr('Good morning', 0, 4);
print $s;

とすればGoodと返される。

pythonで同じ処理をするにはリストの要素を取り出すときと同じ要領で、

s = "Good morning"[0:4]
print s

とすれば良いみたい。

perlで次のようにsubstr関数に与える最後の引数を省略すると、

my $s = substr('Good morning', 5);
print s

5番目の文字以降全部のmorningが返される。

pythonでも

s = "Good morning"[5:]
print s

とすれば同じ結果が得られる。

perl文字列中の特定の文字列の位置を調べるには関数indexを使うようで、

print index('Good morning', 'ing'), "\n";

とすれば9と返される。

pythonでは文字列メソッドを使って、

"Good morning".index("ing")

または

"Good morning".find("ing")

とすれば良いみたい。

この例ではindexメソッドでも、findメソッドでも同じ結果が得られるけど

両者はイコールと考えてよいのだろうか?

perlでは

$str =~ s/morning/evening/;

という文を使って変数 $str内の'morning'を'evening'に置換することができるようで、

my $str = 'Good morning';
$str =~ s/morning/evening/;
print "\$str = $str\n";

とすれば

$str = Good evening

と出力される。

pythonではreplaceメソッドを使って、

str = "Good morning"
str = str.replace("morning", "evening")
print "str = %s" %str

とすれば

str = Good evening

と出力できる。

uemurauemura 2008/12/04 09:57 print ",".join([str(i) for i in score])

が普通かな

トラックバック - http://d.hatena.ne.jp/tachikawa844/20081203/1228290087