Python を仕事でよく使うので, 休みを利用して速習します.
最初は便利なデータ構造の扱いについて.
リスト
まずは定義の仕方. と簡単な扱い方.
>>> list = [1,2,"abc",3,4]
>>> list
[1, 2, 'abc', 3, 4]
>>> list[2]
'abc'
>>> list[-2]
3
>>> list[1:]
[2, 'abc', 3, 4]
>>> list[1:3]
[2, 'abc']
[ ]でくくって定義するのがリスト. どんなもの, 文字列, 数値なども格納可能.
list[: ]のようにして指定箇所のオブジェクトを取り出すことができる. これをスライスという.
基本演算
>>> list += [100]
>>> list
[1, 2, 'abc', 3, 4, 100]
>>> list *2
[1, 2, 'abc', 3, 4, 100, 1, 2, 'abc', 3, 4, 100]
>>> del list[-1]
>>> list
[1, 2, 'abc', 3, 4]
+[100]でリストへ追加. *を使うとそれを何回も繰り返したものを返す. あくまでlistそのものは変わらない.
del list[ ] で要素削除.
様々なメソッド
ソート
>>> list
[1, 2, 120, 3, 4]
>>> list.sort()
>>> list
[1, 2, 3, 4, 120]
リバース
>>> list2 = list.reverse()
>>> list
[120, 4, 3, 2, 1]
追加
>>> list.append([9,10])
>>> list
[120, 4, 3, 2, 1, [9, 10]]
>>> a = list
>>> list.extend(a)
>>> list
[120, 4, 3, 2, 1, [9, 10], 120, 4, 3, 2, 1, [9, 10]]
appendで1個のオブジェクト追加. extendでリスト結合.
ディクショナリ
<key, value> によって保持されるデータ型. リストはkeyに使えないことに注意.
>>> dic = {"name" : "K", "addr" : "JPN", "count" : 100}
>>> dic
{'count': 100, 'name': 'K', 'addr': 'JPN'}
>>> dic ["hobby"] = "guitar"
>>> dic ["hobby"]
'guitar'
>>> dic
{'count': 100, 'hobby': 'guitar', 'name': 'K', 'addr': 'JPN'}
こんなかんじで, { }でくくってkey:valueで定義します. あとは["key"]とすればvalueを探せますし,
["new key"]で新たなkey:valueを追加できます.
もちろん欲しいのkeyの一覧
>>> dic.keys()
['count', 'hobby', 'name', 'addr']
あと, keyが含まれてるかどうか
>>> dic.has_key("count")
True
>>> dic.has_key("hoge")
False
タプル
長さも変えられないし, 書き換えもできないタプルの紹介. ディクショナリのkeyとして使えば便利かと.
>>> tup = (192,168,1,1)
>>> tup
(192, 168, 1, 1)
取り出し, 演算は可能. 他のタプルとして定義すればよいよね.
>>> tup2 = tup + ("abc",11)
>>> tup2
(192, 168, 1, 1, 'abc', 11)
>>> tup2 [3:]
(1, 'abc', 11)
スライスもリストと同じです.
型変換について
もちろん便利な型変換も可能です.
>>> a = list(tup2)
>>> a
[192, 168, 1, 1, 'abc', 11]
>>> a = tuple(a)
>>> a
(192, 168, 1, 1, 'abc', 11)
以上, 今回の話をまとめると,
シーケンス型の組み込み型: リスト, タプル
マップ型の組み込み型: ディクショナリ
変更可能な組み込み型: リスト, ディクショナリ
変更不可能な組み込み型: タプル, (文字列も同じ)