Python 正規表現
・正規表現を使用して見つかったパターンをマッチすると言う。
# !/user/bin/env python import re #importする。 def main(): pattern = r'a' # 見つけたい文字。 ''の前にrをつけることで「」をそのまま使える。 text = 'abcda' m = re.match(pattern, text) # re.match(見つけたい文字, 検索する文字列) # 文字列の先頭で正規表現とマッチの判定 n = re.search(pattern, text) # re.search(見つけたい文字, 検索する文字列) # 見つけたい文字がどこかにあれば返す l = re.findall(pattern, text) # re.findall(見つけたい文字, 検索する文字列) # マッチした部分文字列をすべて探し、リストで返す。 print(m) # <_sre.SRE_Match object; span=(0, 1), match='a'> print(n) # <_sre.SRE_Match object; span=(0, 1), match='a'> print(l) # ['a', 'a'] # search()関数 ※マッチが複数あっても最初の箇所だけ返す。 print(n.group()) # a マッチした文字列を返す print(n.start()) # 0 マッチの開始位置 print(n.end()) # 1 マッチの終了位置 print(n.span()) # (0, 1) マッチの位置 if __name__ == '__main__': main()
Python matplotlibを使ってグラフを描く。
matplotlibを使うことで、Pythonでグラフを描くことでできる。画像ファイルだけでなく、gifファイルなどのアニメーションの作成も可能。
1.importの仕方
import matplotlib.pyplot # または、 import matplotlib.pyplot as plt
下のimport方法が文字の入力が少なくなって楽。
2.簡単なグラフの表示方法
# !/user/bin/env python import matplotlib.pyplot as plt def main(): # y = x^2をグラフにする。 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # x座標 y = [] # y座標 for i in x: y.append(i**2) plt.plot(x, y) #xとyのデータを渡す plt.show() # グラフの表示 if __name__ == '__main__': main()
表示されるグラフ
二次関数の式ではあるが、yに与えるxの座標が飛び飛びであるため、曲線ではなくなっている。
numpyなどを使って配列を作るとより滑らかなものになる。
plot()を使って、座標の情報を送り、show()を使ってグラフを表示する。
詳しくは、ここのブログを参照してください。
Python importの方法
numpyをインポートしてみます。インポートする方法はいくつかあります。
すべてのコードの出力結果は、
[1 2 3 4 5 6 7 8 9]
です。
1.import numpy
# !/user/bin/env python import numpy def main(): a = numpy.arange(1,10,1) print(a) if __name__ == '__main__': main()
この方法は、普通のインポートの方法です。
a = numpy.arange(1,10,1) のように使います。
2.import numpy as np
# !/user/bin/env python import numpy as np def main(): a = np.arange(1,10,1) print(a) if __name__ == '__main__': main()
この方が文字入力を省略できます。
a = np.arange(1,10,1) のように使います。
3.from numpy import arange
# !/user/bin/env python from numpy import arange def main(): a = arange(1,10,1) print(a) if __name__ == '__main__': main()
import する関数を選ぶ使い方です。
この場合、arangeを利用することができます。
この書き方をすると、numpy.arange()やnp.arange()のように入力する必要がなく、文字の入力が楽になります。
また、’math’をimport し、sin()とcos()を使いたいとき、
from math import sin, cos
のように複数の関数をimportできます。
ワイドカード "*" を使って、
from math import *
としてすべての関数を利用できます。
他のライブラリと関数が被る場合があるので利用する場合は注意が必要です。
importする方法は、複数あるため使い分けが大切です。
Python listの要素の型を変える
・内包表記を使う
list = [1, 2, 3, 4, 5] a = [str(i) for i in list] print(a) #['1', '2', '3', '4', '5']
・関数を作成する
def change_str_to_int(s): try: return int(s) except Exception: return s list = ["1", "2", "3", "4", "5", "a"] #やり方1 list_change1 = [] for i in range(len(list)): list_change1.append(change_str_to_int(list[i])) print(list_change1) #[1, 2, 3, 4, 5, 'a'] #やり方2 list_change2 = [change_str_to_int(e) for e in list] print(list_change2) #[1, 2, 3, 4, 5, 'a']
参考サイト
Python3で文字列リストの変換をmapでしようとしたらハマった件について - どこかに向かうらしい話
python 文字と数字 の混在したソートについて.A=['1','2','3','4','5... - Yahoo!知恵袋
Python リスト ソート 並べ替え
・list 作り方
list = [1,2,3,4,5,6] print(list) #[1, 2, 3, 4, 5, 6]
・要素追加
list = [10,2,9,4,5,6] print(list) list.sort() print(list) #[10, 2, 9, 4, 5, 6] #[2, 4, 5, 6, 9, 10]
list = [10,2,9,4,5,6] print(list) list_2 = sorted(list) print(list_2) #[10, 2, 9, 4, 5, 6]
・降順でソート
list = [10,2,9,4,5,6] list.sort() print(list) list.sort(reverse = True) print(list) #[2, 4, 5, 6, 9, 10] #[10, 9, 6, 5, 4, 2]
sort()の中で、reverse=Trueにする。
・多次元listをソートする
list = [[2, 2], [3, 1], [1, 4], [4, 3]] list.sort() print(list) #[[1, 4], [2, 2], [3, 1], [4, 3]] list.sort(key=lambda x: x[0]) print(list) #[[1, 4], [2, 2], [3, 1], [4, 3]] list.sort(key=lambda x: x[1]) print(list) #[[3, 1], [2, 2], [4, 3], [1, 4]]
lambda式を使って、要素を指定してソートする。
参考サイト
Python
Python 文字列
文字列の扱い、一例
>>> word = "Python" >>> word[0] 'P' >>> word[1] 'y' >>> word[-1] 'n' >>> word[0:2] 'Py' >>> word[2:5] 'tho' >>> word[:2] 'Py' >>> word[2:] 'thon' >>> word[10] Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> word[10] IndexError: string index out of range >>> word[1:10] 'ython' >>> word[10:] ''