2009-01-01から1年間の記事一覧

無限defaultdict/辞書型キー初期化

辞書を何階層にも入れ子にして、それでも各階層の初期化を自動的に行いたい場合、setdefaultを使うのであれば d = {} d.setdefault('key1',{}).setdefault('key2',{}).setdefault('key3',{})['key4'] = 'value' print d['key1']['key2']['key3']['key4'] の…

辞書型値の結合

2chスレ「Pythonのお勉強Part33」より。面白かったのでちょっとまとめてみました。 http://pc12.2ch.net/test/read.cgi/tech/1240678081/244- 2つをマージした新しい辞書dict3を一発でつくるにはどうしたらいいですか (...) D1もD2も変更せずに、かつD1とD2…

文字の出現回数を数える/辞書型キー初期化

文字の出現回数といっても、ASCIIの文字だけで、また文字列の中で数えられるくらいならs.count('a')で十分でしょう。 でもサイズの大きいテキストファイルを読み出しながら、漢字などの要素数の多い集合であらかじめ出現するどの文字が出現するかは分からな…

年齢の計算

「今年−誕生年」を計算し、今年の誕生日がまだ来ていなければ1減らす、という方法です。 from datetime import date, timedelta birthday = date(1972, 2, 29) today = date.today() ## y年における誕生日(閏日補正含む) def yearbirthday(b,y): try: retu…