Pythonチュートリアル一人読書会 vol.3

■第5章 データ構造

リストについて
リストオブジェクトが持ってるメソッドの紹介
リストを使って簡単にStackとQueueを実現できるよ。
Stack
→append()で要素を追加して引数なしのpop()で要素を取り出せばおk
Queue
→append()で要素を追加して引数'0'のpop(0)で要素を取り出せばおk
リストの内包表記
filter(func, seq)
seq内のすべての要素に対してfuncを実行し、
実行した結果がtrueとなるような値のリストを返却します。
map(func, seq)
seq内のすべての要素に対してfuncを実行し、
実行した結果の戻り値からなるリストを返却する
reduce(func, seq)
引数を二つとるfuncに対して、seqの先頭から処理を実行していく。
最初にseqの先頭の二つの要素に対してfuncを実行し、
以降は実行した結果と、次の要素を用いてfuncを実行する。
ex)1から10までの総和を求める場合
def add(x,y): return x+y
[1,2,3,4,5,6,7,8,9,10]
1+2=3→3+3=6→6+4=10→10+5=15...45+10=55
seqの要素がひとつしかない場合はその値自体が返却される。
空の場合例外投げます
a**2でaの二乗になる
→strには使えない
タプルとシーケンス
タプルは常に丸括弧で囲われるよ
タプルは変更不可だよ
(スライスと連結を使えば変更みたいなことはできるけど)
参考:
集合やべぇ
diff取れるとかすげぇ
辞書型
keyにタプルを使えるよ
keyの存在を調べるにはhas_key()
すべてのkeyのリストを取得するならkeys()
iteritems()
→キーとそれに対応する値を同時に取り出せる
enumerate()
→要素のインデクスと要素を同時に取り出せる
比較演算子の優先順位
"and", "or", "not" などは比較演算子より優先順位が低い
式の内部で代入は行えませんよ
→=と==のミスタイプを防止するため
str1,str2,str3 = '','Trondheim','Hammer Dance'
not_null = str1 or str2 or str3
#この式がなにを評価しているかがわからにぃ
#実行すると'Trondheim'が出力されるということは
#not nullになる一番最初の値を代入してるってこと?

0 コメント:

コメントを投稿