とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

Pythonの文字列でよく使う関数まとめ

WindowsでPython シリーズ その12


Pythonの文字列操作 基礎の基礎の続きです。
とうとう12回目!というわけでPythonのヨチヨチ歩きもそろそろ終わりたいところ。

でも文字列を操作したいことは非常に多いので、文字列に対する関数をもう少し触っておきます。
ここでは多分よく使う操作方法を抜粋して紹介します。

Pythonの日本語マニュアルを見ると使える関数はめちゃくちゃ多いので
詳しくは4.7.1. 文字列メソッドを見てくださいね。

検索と変換、置換


文字列操作で最も多い文字の検索と置換。
ではコードを。



実行結果
Pythonの文字列でよく使う関数まとめ
find(文字列)
実行結果の通りですが、findは文字の位置を探します。

lower()
大文字を小文字に変換します。

upper()
小文字を大文字に変換します。

replace(置換したい文字, 置換後の文字, 置換する回数)
指定した文字をお好みの文字に変換します、第3引数は置換する回数を指定します。

文字の分割(リストにする)と結合


文字をぶつ切りにしたり、リストを結合したりしたいとき。あるよね?


実行結果
Pythonの文字列でよく使う関数まとめ

"2017/06/07" を "/" でぶった切ってリストにしてます。
で、リストを"-"で繋いで出力しています。
ちなみに"-".join() じゃなくて "".join() とすると、20170607と出ます。

前後の除去や数値の判断


文字列が数字だった場合、前後にスペースが入っている場合など、
本当に数値に変換できるのかとかを判断します。if文とかに使えそうだね。



実行結果
Pythonの文字列でよく使う関数まとめ

では少し解説
"文字列".strip()
前後の文字を削除します。

"文字列".isnumeric()
その文字列が数値かどうか判断します。
print(str5.isnumeric())
だとFalse(違うよ!)って返ってきて
print(str5.strip().isnumeric())
だとTrue(数値だよ!)って返ってきてますね。
これはstrip()で前後のスペースを削除したことによって、数値であると判断された結果ですね。
(空白があると数値ではないので)

幅寄せ、フォーマット


今日一番やりたかったことです。
文字列操作の幅寄せとかフォーマット、書式指定って本当によく使うんです。
詳しくは6.1.3.1. 書式指定ミニ言語仕様ここを見ていただくとして、あれこれ使いやすそうなのを書いてみました。



実行結果
Pythonの文字列でよく使う関数まとめ

では解説いきます。

format()
こいつはすごい多機能です。
正直いって、マニュアル見ても全部理解するのはサッパリなのですが、主要機能はもうまる覚えしてしまいましょう。

基本の書き方

基本は "文字列{0}|".format(添字に入れる文字) です。
具体的には print("|{0}|".format(str6)) ですね。
そのまま"ABC"と出てます。

んでオプション。

  • < 小なり

  • > 大なり

  • ^ 中央寄せ

  • = 指定桁数まで埋める


  • print("|{0:^20}|".format(str6)) って書いてる部分を見ると
    20桁の幅をとって、その中央にABCを出力しています。

    リストもformatできるよ!
    format(リスト)と書いても文字出力できます。リストは0[0] こんな感じで、リストに対してさらに添字を指定する。
    print(list(str6))
    print("|{0[2]:<10}|{0[1]:^10}|{0[0]:>10}|".format(list(str6)))

    ちょっと複雑になってるけど、それぞれ10桁の幅で左寄せ、中央寄せ、右寄せで出力されています。

    "=" は数値に対してのみ指定できる
    "=" は、指定幅の前に指定した文字を埋める。
    int1 = 123
    print("{0:A=10}".format(int1))
    print("{0:0=10}".format("123"))

    AAAAAAA123
    こんな感じ。だけど文字列にはダメで
    ValueError: '=' alignment not allowed in string format specifier
    の通り、"="は数値型にのみ有効です。
    文字も埋めたいんだけど・・・

    文字列の左詰めはrjustを使おう


    文字列には rjust()、ljust()が用意されているみたいです。


    実行結果
    Pythonの文字列でよく使う関数まとめ

    はい、思った通りの結果ができました。

    文字列の操作は奥が深い


    さて、簡単な操作ばっかりでしたが、とりあえず使う分には申し分ないでしょう。
    あとは文字列を操作していて、なんかもっとスマートに書けないかなと思ったときにマニュアルを読めば大丈夫。

    ではでは今日はおしまい!(今日も1時間半ぐらいかかってしまった・・・)
    ▼この記事を読んだ方は、こんな記事も読んでいます。▼

    スポンサードリンク

    テーマ:プログラミング - ジャンル:コンピュータ

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバック URL
    http://dalmore.blog7.fc2.com/tb.php/172-0d9c1e93
    この記事にトラックバックする(FC2ブログユーザー)

    FC2Ad