Pythonのタプル・リスト・辞書・集合
Pythonでのリスト等の型に関するメモです.
目次
比較
- タプルはイミュータブル(要素不変),リストはミュータブル(要素可変).
- タプル・リストはインデックス,辞書は一意なキーで要素にアクセス.
- 辞書は異なるキーで同一の要素を持てるが,集合は要素そのものが一意.
なお,集合演算可能だがイミュータブルなfrozenset
型も用意されている.
タプル
リストや集合はtuple()
によりタプルへ変換できる.
リスト
リストと要素
list = [配列] |
リストの結合・分割
リストを区切り文字で結合し,数珠つなぎの文字列にするには,
'区切り文字'.join(リスト) |
文字列を区切り文字で分割し,リストにするには,
'文字列'.split('区切り文字') |
リストでループカウンタ
enumerate
関数をリストに使うと,0始まりのループカウンタを取得できる.
l = ['天', '地' ,'人'] |
map関数
map関数は関数を引数にとる.
map(関数, リスト) |
関数に代えてラムダ式も書けるので,例えば,
list(map(lambda x: x+1, [1,2,3])) |
ということも可能.
リスト型への変換
集合などを引数として,list()
を用いる.
辞書
2つのリストから辞書を作る
zip
と辞書の内包表記を使う.
x = ["apple", "banana", "cherry"] |
辞書をループで使う
辞書d
があるとする.
d.items()
:全ての要素を持ったオブジェクトを取得d.keys()
:全てのキーを持ったオブジェクトを取得d.value()
:全ての値を持ったオブジェクトを取得
ループで使える.
正値のみ抽出した辞書の例
self._プロパティ名
なる辞書がクラスのメンバーに存在しているものとする.
|
集合
集合と要素
- 集合の作成:
S = {x, y, z}
- 空集合:
S = set()
- 要素の追加:
S.add(x)
- 要素の削除:
S.remove(x)
(集合の含まないx
を削除してもエラーとならないS.discard(x)
もある.)
集合間の演算
- 和集合:
S | T
またはS.union(T)
- 積集合:
S & T
またはS.intersection(T)
- 差集合:
S - T
またはS.difference(T)
- 対称差:
S ^ T
またはS.symmetric_difference(T)
(互いに素であるかの判定はisdisjoint
メソッドを使う) - 部分集合:
S <= T
またはS.issubset(T)
(上位集合は>=
とissuperset
) - 真部分集合:
S < T
メンバーシップ・テスト
x in s
,x not in s
集合型への変換
set()
を用いる.
辞書の集合化はキーの集合になる.