この記事ではpython上で使用する文字列を分割したり
抽出したりする方法について解説します。
文字列操作の基本については
こちらで詳しく解説していますのでご覧ください。
【python入門】文字列を分割して表示する方法
たとえば、
「おばあちゃん、大好きだよ」
で『ば』だけ分割して表示させたいとします。
まず「おばあちゃん、大好きだよ」を全部表示させるなら
こうなりますね。
print('「おばあちゃん、大好きだよ」')
実行するとこうなります。
では次に『ば』だけ表示させてみましょう。
インデックスを使います。
インデックスを使うにはまず変数に
「おばあちゃん、大好きだよ」を入れましょう。
ここではaに入れますね。
変数のことがよくわからない方は
コチラの記事をご覧ください。
a = 'おばあちゃん、大好きだよ' print(a[1])
上記のように変数aに[1]としてください。
すると、2番目の文字だけ分割して表示してくれます。
「おばあちゃんの『ば』は2番目だからa[2]じゃないの?」
と思われたかもしれません。
ですが
a = 'おばあちゃん、大好きだよ' print(a[2])
とすると
おばあちゃんの3番目の文字『あ』が表示されます。
どういうことかというと
a[]に入る数字の最初は0だからです。
0,1,2・・・
となっているんです。
だからおばあちゃんの「ば」である2番目の文字を表示させたいなら
a[1]にしないといけないわけですね。
じゃ、『おばあちゃん』の『お』を表示させるには
どうすればよいでしょう?
a[0]とすればよいわけですね。
a = 'おばあちゃん、大好きだよ' print(a[0])
すると
おばあちゃんの『お』が表示されました。
次に「おばあちゃん、大好きだよ」の最後の『よ』を表示させるには
どうすればよいでしょう?
初めの文字『お』を『0』として
数えてもよいのですが・・・
こんな感じで。
a = 'おばあちゃん、大好きだよ' print(a[11])
ちゃんと『よ』が表示されますね。
面倒ですね。
「おばあちゃん」の「お」を「0」として
11番目の「よ」まで一々数えないといけませんから。
もっと簡単に表示できる方法があります。
a[-1]とマイナスにすればいいんです。
a = 'おばあちゃん、大好きだよ' print(a[-1])
きちんと『よ』が表示されましたね。
では[-2]ならどうなるでしょう?
a = 'おばあちゃん、大好きだよ' print(a[-2])
最後から2番目の『だ』が表示されました。
こんな感じで文字列の左から右を数えるときは[0]から
右から左に数えるときは[-1]から数えることで
目的の文字だけを表示させることができます。
python文字列抽出:スライス
pythonで文字列を抽出させたいとき、
スライスを使ってみましょう。
たとえば
『文字列の抽出や分割は簡単だ』
という文章があったとします。
ここで、『抽出』という単語だけを抽出してみましょう。
洒落ではないですよ(苦笑)
a = '文字列の抽出や分割は簡単だ' print(a[4:6])
このようにa[抽出したい文字:抽出したい最後の文字の次の文字]
で、必要な文字だけを抽出することができます。
こんな感じで。
(a[4:6])で、4は0から数えて5番目の『抽』を。
6は0から数えて7番目の『や』の手前までを意味しています。
だから(a[4:6])とすることで『抽出』だけが
抽出されるわけですね。
これをスライスといいます。
では、例題を。
実際にやってみましょう。
『文字列の抽出や分割は簡単だ』
で、『分割は簡単』だけを抽出してみましょう。
どうすればよいでしょう?
実際にやってみてくださいね。
回答は・・・
a = '文字列の抽出や分割は簡単だ' print(a[7:12])
となります。
(a[7:12])で、7は『分』を12は『だ』の手前までを意味しています。
では問題です。
以下のような場合、実行したら
どのように表示されるでしょう?
a = '文字列の抽出や分割は簡単だ' print(a[:6])
上記の問題は(a[:6])と
:6の前に数字がありません。
結論はこうです。
(a[:6])とした場合、数字を空白にしている部分は『0』と
pythonでは認識されます。
では、
a = '文字列の抽出や分割は簡単だ' print(a[7:])
だったらどういう結果になるでしょう?
(a[7:])と左側には7という数字があります。
でも右側には数字が入っていません。
勘のいい方はわかるでしょうね。
結論はこうです。
(a[7:])と右側に数字がない場合には
文字列の最後まで表示されます。
じゃ、これならどうなるでしょう?
a = '文字列の抽出や分割は簡単だ' print(a[:])
文字列の最初から最後まで表示されましたね。
pythonのlen関数を使って文字列の長さを調べる
『おじいちゃんは歌がミスチルの桜井さんくらい上手』
という文字列があったとします。
この文字列の長さを調べるときには
len関数を使いましょう。
こうやって使います。
a = 'おじいちゃんは歌がミスチルの桜井さんくらい上手' b = len(a) print(b)
実行すると結果はこうなります。
文字数が23文字ってことですね。
こんな感じでlen関数を使うことで
文字列の長さを調べることができます。
以上で解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。