2010年11月11日木曜日

Pythonの初歩

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)


以上, 今回の話をまとめると,

シーケンス型の組み込み型: リスト, タプル
マップ型の組み込み型: ディクショナリ

変更可能な組み込み型: リスト, ディクショナリ
変更不可能な組み込み型: タプル, (文字列も同じ) 

0 件のコメント:

コメントを投稿