コンテナ

POINT len() はリストの他に文字列やタプル、辞書などの要素数を取得できる


リスト(list)

# 初期化 a = [] a = ["A", "B", "C", "A"] # 要素数 print len(a) # 追加 a.append( v ); # 挿入 ( i 番目に v を追加する ) a.insert( i, v ); a.insert( 0, v ); # 削除 a.remove( v ); # 削除 a.pop( i ); # ソート a.sort(); # 2つのリストを結合する。 # [1,2,3,4,5,6] a = [1,2,3] + [4,5,6]
WARNING 重複の除去 ( uniq )はない インデックスをつけるには enumerate() を使う
for i, v in enumerate( ["a", "b", "c"] ): print i, v
スタックとして使う
a.append( 10 ); a.pop();
スライスを使うとリストの部分を切り出せる。 スライスした結果もリストとなる。
sys.path[1:2] a[1:-2] a[1:] a[:2] # リスト全体をかえす a[:]
WARNING 変数はオブジェクト( リスト )の参照をとるため、コピーが必要ならばスライスをする
a = [1,2,3] b = a b[0] = 7 # [7,2,3] print a
スライスをすることで a, b は別のオブジェクトを参照する。
b = a[1] b[0] = 7 # [1,2,3] print a



セット(set)

POINT 集合とは要素が重複しない集まりこと。 ブーリアン演算もできる。
a = set( [ "a", "b", "c" ] );



tuple(タプル)

SYNTAX ( object, ... )
t = (1, "2", "aaa", 0.5) # 要素をとりだす t[1] # タプルオブジェクトは変更できないため、要素の変更はできない。 t[1] = 10 # 連結 t2 = t + ( "a", "b" )



Dictionary(Map)

# 空の辞書 a = {}; # 初期化子リストで初期化 tbl = { "tanaka" : "090-xxx", "sato" : "090-xxx", } # 要素数( 2 ) len( tbl ) # 辞書に追加する tbl[ "foo" ] = "bar" # iteritem() 関数を使うと反復できる。 for k, v in tbl.iteritems(): print k; print v; # クリア tbl.clear() # 削除 del tbl[ "tanaka" ] # 存在をテストする if "tanaka" in tbl: print tbl["tanaka"] if "tanaka" not in tbl: print "nai"



フィルター(filter)

def f(i): return x % 2 == 0; filter( f, range(1, 10) )



写像(map)

def f(i): return x % 2 == 0; filter( f, range(1, 10) )