進捗
4/16 p.370~p.371 16:00~18:00
正規表現のreモジュールについて学習した。compile関数で正規表現パターンを引数にして正規表現オブジェクトを作る。
reモジュールにはメソッドを使う方法と関数を使う方法がある。
例えば正規表現obj.split(string)とre.split(pattern,string)がある。
速度を調べたらcompileがない分、後者の方が速い。またsplitは第一引数の正規表現を基準としてで文字列を分割し結果をリストで返すが、正規表現を()でくくると基準と同じグループの文字列も全てリストの結果に含めて返す。
match,searchはマッチした箇所の情報をマッチオブジェクトにして返す。findallはマッチした結果を文字列のリストにして返す。matchは文字列の先頭を調べる。searchは文字列全体を調べる。
進捗
4/10 13:30~16:30 p.352~p.354
ディクショナリの値がリストの形ならappendメソッドを使って値であるリストに追加できる
このサイトにも書いてあるようにディクショナリに付随するsetdefaultメソッドは、第一引数のキーがすでに存在している場合値が更新されることはない。キーに対して複数の値をまとめたい場合は、第二引数をからのリストにしてappendメソッドを使い追加する方法がある。
ドキュメントに書いてあるように組み込み関数dictは実はクラスである。dictを親クラスとしたcollectionsモジュールのdefaultdictクラスを学んだ。defaultdictは扱う際にインスタンスを立てる。()の中の引数にlistを入れると値が空のリストを持ったディクショナリを作る。intならば値が0のディクショナリを作る。