Python で扱えるデータ構造について。

リスト

いわゆる配列です。任意のオブジェクトを要素として持つことができます。

## リストの生成
alist = [1, 2, 'hoge']

## リスト自体もリストの要素として持つことができる
alist = [1, 2, ['fuga', 3]]

## リストの末尾に要素を追加
alist.append(3)
print alist
[1, 2, ['fuga', 3], 3]

## リストの末尾から要素を取り除く
alist.pop()
print alist
alist = [1, 2, ['fuga', 3]]

## 指定した位置に要素を追加
alist.insert(0, 'hoge')
print alist
alist = ['hoge', 1, 2, ['fuga', 3]]

## 指定したリストを対象のリストに追加し、リストを拡張
alist.extend(['aaa', 'bbb'])
print alist
alist = ['hoge', 1, 2, ['fuga', 3], 'aaa', 'bbb']

タプル

リストによく似ていますが、一旦作成すると変更することができません。

>>> atuple = (1, 2, 'aaa')
>>> atuple[0] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> 

タプルは () で囲みます。要素が一つだけの場合は要素の後にカンマが必要です。

>>> ('hoge')
'hoge'
>>> ('hoge',)
('hoge',)
>>> 

辞書

いわゆる連想配列(ハッシュ)です。{ key1: value1, key2:value2, ...} の形式で生成します。

>>> adict = {'hoge':1, 'fuga':2}
>>> adict['hoge']
1
>>> adict['piyo']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'piyo'
>>> adict.get('piyo', 0)
0
>>> 'hoge' in adict
True
>>> 'piyo' in adict
False
>>> adict.keys()
['fuga', 'hoge']
>>> adict.values()
[2, 1]
>>> adict.items()
[('fuga', 2), ('hoge', 1)]
>>>