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
スタックとして使う
スライスを使うとリストの部分を切り出せる。
スライスした結果もリストとなる。
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) )