リスト、タプル、ディクショナリ
久しぶりに「初めてのPython」を読み進めた。リスト、タプル、ディクショナリの気になった点をメモしておく。
- リスト
- ミュータブルなオブジェクト。
- 配列として実装されている。
- 「シーケンス」のカテゴリに属する。
- L.append(x)と、L + [x]は違う。前者は、オブジェクトを変更するが、後者は、新たなオブジェクトを返す。L[len(L):] = [x]は、前者と同じ。
- 要素の削除は、delステートメントで行う。del L[0]や、del L[1:]など。L[0:1] = [ ]でも良い。しかし、L[0] = [ ]は、空リストのリファレンスの代入。
- sort()、append()などの破壊的メソッドの戻り値は、None。しかし、破壊的だが、pop()は値を返す。
- タプル
- リストとの違いは、イミュータブルであること、メソッドが存在しないこと。
- ディクショナリ
- ミュータブルなオブジェクト。
- 「写像」のカテゴリに属する。
- 要素の削除は、del D[key]で行う。
- キーは、イミュータブルなオブジェクトなら何でも良い。
- D[key]は、キーが存在しないとエラー。D.get(key)や、D.get(key, default)ならOK。