05-Python

Python(Part.15)| pythonのリスト(概要編)| 現役エンジニア&プログラミングスクール講師

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

目標

「データ構造」について理解する。
(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の)「リスト」とは

(pythonの)「リスト」は、他のプログラミング言語でいう「配列」に相当します。(pythonの)「リスト」は「配列」を拡張した機能をもっていて、配列では本来行えない要素の追加が可能です。これは、(pythonの)「リスト」では実際に必要な記憶域より多くの記憶域を準備しているためです。また、名前の似ている「連結リスト」とは異なります。

配列…すべての要素を連続した記憶領域上に格納するデータ構造(配列構造)

  • 配列は要素の数を決めたら途中から増やすことも減らすこともできません。
  • 要素へのアクセスはランダムアクセスです(ピンポイントにアクセスできる)。

例:小学校のシューロッカー(下駄箱)が配列のイメージです。

連結リスト…ポインタ(参照先アドレス)を利用してデータを並べるデータ構造(リンク構造)

  • 連結リストはポインタを利用してデータを並べるので要素の増減が可能です。
  • 要素へのアクセスはシーケンシャルアクセスです。(先頭の要素から順番に走査します。)

例:列車の連結が連結リストのイメージです。

(pythonの)「リスト」の特徴

(pythonの)「リスト」には次の特徴があります。

  1. 要素にはオブジェクトの参照が入るので型は共通でなくてもよい。
  2. 要素の変更が可能(ミュータブル)。
  3. 要素は先頭から順序をもつ(順番がある)。
  4. 要素の並びを走査(スキャンニング)できる。
  5. 要素にはインデックス(添え字)を利用してランダムアクセスができる。
  6. スライス式を利用して特定の範囲を取得できる。
  7. 要素数は任意で、リスト作成後も追加と削除ができる。
  8. 要素のソート(昇順降順の並び替え)や反転を行える機能が充実している。
  9. 要素は空でもよい。(論理値はFalseとなる。)
  10. 「リスト」はイテラブルオブジェクトのひとつ。

要素には「参照」が入っているイメージ

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

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

要素の値を変更できます。これは参照先を変更しています。

「インデックス」のイメージ

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

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

イテラブルオブジェクト

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

イテレータオブジェクトの生成には「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
05-Python

Python(Part.17)| pythonのリスト(利用編-2)| 現役エンジニア&プログラミングスクール講師

2023年12月3日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.4)| pythonの基礎【リテラルと型】| 現役エンジニア&プログラミングスクール講師

2023年9月8日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.20)| pythonのリスト(利用編-5)| 現役エンジニア&プログラミングスクール講師

2023年12月8日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.8)| pythonの基礎【組み込み関数(2)】| 現役エンジニア&プログラミングスクール講師

2023年9月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.13)| pythonの基礎【反復構造(while文)】| 現役エンジニア&プログラミングスクール講師

2023年11月13日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.7)| pythonの基礎【組み込み関数(1)】| 現役エンジニア&プログラミングスクール講師

2023年9月16日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site