Python実践入門 8章
8.1 組み込み関数
イテラブルなオブジェクトを受け取る関数
zip()
複数のイテラブルオブジェクトを受け取って、同じインデックスの要素をまとめてタプルにして返してくれる
デフォは一番長さが短いイテラブルオブジェクトに合わされる
長いのに合わせたい時は、zip_longestを使う
sorted()
破壊的でないソートメソッド
ソート後の配列が返される
同じ型で入ってないと基本エラーになるよ
特殊処理したい場合は引数keyに、引数1つもつ関数を渡す
sorted(list-x, key=lambda v: int(v))
dictで特定のkey-valの値でソートしたい場合はitemgetterが便利
code: itemgetter.py
from operator import itemgetter
d = [
{'word': 'a', 'count': 1},
{'word': 'b', 'count': 4},
{'word': 'c', 'count': 2},
]
sorted(d, key=itemgetter('count'))
filter(), map()
filter, mapの返り値は元の型でなく、イテレータになる.リストとかにしたい場合は結果をlist()とかで包むこと
list(map(lambda i: i * 10, list-x))
all(), any()
allはイテラブルが全てTrueならTrue, anyは1つでもTrueならTrue
8.2 特殊メソッド
Pythonが暗黙的に呼び出すメソッド、__特殊メソッド()__という形式
すごい特殊なことができるけど、雑に使うと標準的な動き壊れたりするから、注意しよう
lenやstr, 真偽値判定などで渡された時にどういう挙動をするかとかをクラスに特殊メソッドで定義したりする