リスト、タプル、ディクショナリ

久しぶりに「初めての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。