05-Python

Python(Part.28)| python【タプル(概要編)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

「データ構造」について理解する。
(pythonの)「タプル」について概要を理解する。
(pythonの)「タプル」について特徴を理解する。

「データ構造」の概要

「データ構造」とは

「データ構造」とは、0個以上の複数のデータを扱いやすく形式化したもので、pythonには「リスト」「タプル」「辞書」「集合」などがあります。

複数のデータを扱いやすく形式化しているということは、それらを扱うためのルールを持っているということです。「リスト」「タプル」「辞書」「集合」などのデータ構造には取り出し方など含め、操作のための一定のルールがあります。

下の表はWikipediaより引用しています。

(出典)https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0

例えば、「スタック」だと複数のデータは積み上げられるようなイメージで保管されます。積み上げられるように保管されるので、最初に保管されたデータを取り出す場合は、後から追加されたデータも全て取り除いて取り出す必要があります

このように、格納の方法操作のルールがデータ構造には存在します。

(pythonの)「タプル」の概要

(pythonの)「タプル」とは

(pythonの)「タプル」は、複数のデータに順番を付けてまとめたオブジェクトでタプルオブジェクトと呼ばれ、その型はtuple型です。タプルオブジェクトでは要素の数は0個以上、所持できる要素の型は自由でひとつのタプル内で共通である必要はありません

タプルは要素に順序があることと、タプル内の要素の型が自由であることが特徴としてあげられます。

タプルは組(くみ)とも呼ばれます。

(pythonの)「タプル」のイメージ

「リスト」と「タプル」

「リスト」と「タプル」の違い…「リスト」と「タプル」は複数のデータをまとめることや順序が存在すること、要素の型が同じである必要がないことなど共通点が多いですが、大きな違いは「リスト」は「ミュータブル」で「タプル」は「イミュータブル」という点です。

ミュータブル…オブジェクト内の要素の変更が可能。
イミュータブル…オブジェクト内の要素の変更不可。

その他、プログラムとしての記述では「リスト」は「[]」を利用し、「タプル」は「()」を利用します。

(pythonの)「タプル」の特徴

(pythonの)「タプル」には次の特徴があります。

  1. 要素にはオブジェクトの参照が入るので型は共通でなくてもよい。
  2. 要素の変更不可(イミュータブル)。
  3. 要素は先頭から順序をもつ(順番がある)。
  4. 要素の並びを走査(スキャンニング)できる。
  5. 要素にはインデックス式を利用できるが代入式の左辺には利用できない
  6. 要素にはスライス式を利用できるが代入式の左辺には利用できない
  7. 累算代入演算子の演算はインプレースには行われない
  8. 内包表記による生成は利用できない
  9. スライス式を利用して特定の範囲を取得できる。
  10. 要素数は任意だが、タプル作成後は追加も削除も行えない。
  11. 要素は空でもよい。(論理値はFalseとなる。)
  12. 辞書のキーとして利用できる
  13. 「タプル」はイテラブルオブジェクトのひとつ。

要素には「参照」が入っているイメージ(リストと同様)

要素には値そのものが入っているのではなく、参照先が格納されています。

「イミュータブル」のイメージ

要素の値を変更は行えません。

「インデックス」のイメージ(リストと同様)

インデックスには「非負のインデックス」と「負のインデックス」があります。

非負のインデックス…リストの先頭を「0」として末尾に向けて1ずつ増加します。
負のインデックス…リストの末尾を「-1」として先頭に向けて1ずつ減少します。

非負…0以上の数値
正…0より大きな数値

イテラブルオブジェクトとは

「イテラブルオブジェクト」は繰り返し処理のできるオブジェクトのことです。実際に繰り返し処理で要素を順番に取り出すときには「イテレータオブジェクト」を生成して「イテレータオブジェクト」から要素を取りだします。

イテレータオブジェクトの生成には「iter関数(__iter__メソッド呼び出します)」利用します。(pythonのfor文を利用する場合はイテレータオブジェクトをfor文側で作成しています。)

生成されたイテレータオブジェクトには「__next__メソッド」が実装されていて、これが繰り返しの処理を行います。

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST