Pythonのリストとは
Pythonのリスト(list)は、さまざまなデータ型を要素として持つことができる柔軟なデータ構造です。リストはPythonプログラミングで、複数の要素を順序付けて保存するために利用されます。リストは角括弧 [] を使って定義します。
初心者にとってリストの概念と基本的な操作を理解することは、プログラミング学習の重要なステップです。本記事では、Pythonのリストの概要、リストのメリットとデメリット、基本的な使い方について解説していきます。
これからPythonを学ぶ方、初学者の方はぜひ参考にしてください。
【参考】:Welcome to Python.org 【参考】:リスト: ゼロからのPython入門講座 | python.jp
Pythonの4種類のコレクション
Pythonにおいては、データを格納するためのデータ構造として、リストを含めて主に4種類の「コレクション」が用意されています。それぞれのコレクションは、異なる特性と用途を持っています。状況に応じて適切なコレクションを選択することが重要です。
▪ リスト(list) リストは複数のデータを1列に並べて管理するコレクションです。他のプログラミング言語では「配列(array)」と呼ばれることもあります。
要素は角括弧 [] の中にカンマ区切りで並べます。例えば、次のようにリストを定義できます。
# カラーのリストを作成
colors = [red, blue, green, black, white]
リストから値を取得するには、インデックス(0から始まる番号)を使います。例えば、colors[0] はredを返します。colors[1] はblueを返します。またリストには2次元リストがあり、リストの中にリストを格納するデータ構造を指します。
具体的には、リストの要素として別のリストを含めることで、行列や表形式のデータを表現します。
▪ タプル(tuple) タプルはリストに似たコレクションで、要素の追加や変更ができません。タプルは丸括弧 () の中に要素をカンマ区切りで並べます。リストよりもデータの安全性が高く、変更することが想定されないデータの格納に適しています。
タプルは次のように定義します。定義方法がリストに似ていますが、丸括弧 () で括られているのが見た目の違いです。
# フルーツのタプルを作成
fruits = (apple, banana, orange)
リストと同じく、インデックス(0から始まる番号)を使ってタプルから値を取得できます。例えば、fruits[0] はappleを返します。
▪ ディクショナリ(Dictionary) ディクショナリはキーと値のペアを持つコレクションです。キーを使って値を取得できます。ディクショナリは波括弧 {} の中にキーと値を記述します。次のように定義します。
# 名前別の年齢のディクショナリを作成
ages = {'Alice': 25, 'Bob': 30, 'Charlie': 22}
ages['Alice'] は25を返します。
▪ セット(set) セットは重複のない要素を持つコレクションで、順序を持ちません。セットは波括弧 {} の中に要素を記述します。集合同士の論理演算などを行うことができます。
# 数字のセットを作成
unique_numbers = {1, 2, 3, 4}
set型は集合演算ができます。例えば、和集合や積集合、差集合などを計算できます。重複のないデータを効率的に扱いたい場合や、集合演算を行いたい場合に便利です。
リストの特徴や重要性
リストは、複数の値を順番に格納するデータ構造です。他のプログラミング言語における配列と同様の機能を持ち、リストは柔軟性が高く、さまざまな操作を行うことができます。
リストの主な特徴
リストを使うと、プログラムの内容や目的、変数の意味、関数の仕様などを自分や他の人に伝えることができます。リストは、プログラムの可読性や保守性を高めるために重要です。リストを書くときは、以下の点に注意しましょう。
▪ 異なるデータ型の要素を格納できる 数値や文字列、ブール値など、異なるデータ型の要素を1つのリストに格納することができます。
▪ 要素の追加・削除・変更が可能 リストは可変長であり、要素を追加したり削除したり、値を変更することができます。
▪ インデックスによる要素へのアクセス リスト内の要素は、インデックスと呼ばれる番号を使ってアクセスすることができます。インデックスは0から始まり、リストの最後の要素のインデックスはリストの長さマイナス1となります。リストの3番目のデータを取得する場合のインデックス番号は2(=3-1)です。
【参考】:Pythonコードのコーディング規約
リストの重要性について
Pythonにおいてリストがなぜ重要なのかについて見ていきましょう。リストは最も基本的なデータ構造の1つであり、Pythonのプログラミングではさまざまな場面で利用されます。その重要性について挙げていきましょう。
▪ データの集合を効率的に扱える リストは、複数のデータをまとめて格納することができます。これは、数値や文字列、その他のオブジェクトなど、さまざまな種類のデータを扱うことができます。
▪ データの操作が容易 リストには要素の追加や削除、挿入、検索、抽出など、さまざまな操作を行うためのメソッドが用意されています。
▪ コードの可読性とメンテナンス性の向上 リストを使用することで、コードをより分かりやすく、メンテナンスしやすくなります。これは、データを論理的にグループ化し、処理の流れを明確にすることができるためです。
▪ 幅広い用途で利用できる リストは、データ分析や機械学習、Webスクレイピングなど、さまざまな用途で利用することができます。
Pythonリストのメリットとデメリット
Pythonの「リスト」を使うことで、さまざまなメリットが得られますが、デメリットもあります。状況に応じて、リストとタプルなどの他のデータ構造を使い分けることが重要です。
メリット
Pythonのリストは、データ処理においてさまざまなメリットをもたらします。主なメリットは以下の通りです。
▪ 柔軟性 リストはさまざまなデータ型を要素として格納できるため、データ構造の柔軟性を高めることができます。
▪ 操作の容易性 リストには、要素の追加、削除、変更、検索など、さまざまな操作を行うためのメソッドが豊富に用意されています。
▪ コードの簡潔性 リスト内包表記を用いることで、複雑なリスト生成を簡潔なコードで記述することができます。
▪ データ構造の表現力 リストは二次元配列や行列など、さまざまなデータ構造を表現することができます。
デメリット
一方で、リストにはいくつかのデメリットも存在します。デメリットを理解した上で正しく利用しましょう。
▪ パフォーマンス低下 リストは可変長であるため、要素の挿入や削除などの操作において、タプルなどの固定長データ構造に比べて処理速度が遅くなる場合があります。
▪ メモリ使用量増加 リストは可変長であるため、要素の数に応じてメモリ使用量が増加します。
Pythonリストに関わる基本的な操作
これから、Pythonにおけるlistの基礎的な記述方法を見ていきましょう。
リストの作成
リストは、角括弧 [] を用いて作成します。要素をカンマ(,)で区切って記述します。
# 空のリストを作成
my_list = []
# 要素を含むリストを作成
numbers_list = [1, 2, 3, 4, 5]
# 文字列を含むリストを作成
names_list = [Alice, Bob, Charlie]
リストの長さの取得
リストの長さは、len()関数を使って取得することができます。
# リストを定義
my_list = [1, 2, 3, 4, 5]
# リストの長さを取得
list_length = len(my_list)
# 結果を出力
print(list_length) # 出力: 5
特定の要素へのアクセス
リストの要素は、インデックスを使ってアクセスすることができます。
# 最初の要素を取得
first_number = numbers_list[0]
print(first_number) # 1を出力
# 最後の要素を取得
last_name = names_list[-1]
print(last_name) # Charlieを出力
要素の追加
要素は、append()メソッドを使ってリストの末尾に追加することができます。
numbers_list.append(6)
print(numbers_list) # [1, 2, 3, 4, 5, 6]を出力
要素の削除
要素は、remove()メソッドを使ってリストから削除することができます。
numbers_list.remove(3)
print(numbers_list) # [1, 2, 4, 5, 6]を出力
リストの結合
複数のリストを結合するには、+演算子を使用することができます。
merged_list = numbers_list + names_list
print(merged_list) # [1, 2, 4, 5, 6, Alice, Bob, Charlie]を出力
リストのスライス
リストのスライスは、リストから一部の要素を取り出す操作のことです。スライスを用いることで、リストの一部を簡単に取得できます。基本的な構文は以下の通りです。
リスト[開始位置:終了位置:ステップ数]
・開始位置、終了位置、ステップ数は、コロン「:」で区切って指定します。 ・ステップ数は省略可能です。
以下、1次元リストのスライス(開始位置、終了位置)の記述例です。
list_test = list(range(0, 10))
print(list_test[2:]) # [2, 3, 4, 5, 6, 7, 8, 9]
print(list_test[:2]) # [0, 1]
print(list_test[2:5]) # [2, 3, 4]
Pythonリストの基本を抑えてPythonに強くなろう
この記事では、Pythonでよく利用する「リスト」の基本について、概要、リストのメリットとデメリット、基本的な使い方について解説しました。Pythonは構文がシンプルで、初心者でも学習しやすい言語と言われます。
しかし、どんなに素晴らしい教材があっても、ただ眺めるだけでは習得はおぼつきません。実際にコードを書いて、手を動かすことが重要です。今回はリストについて取り上げましたが、実際にリストを使ってコーディングをしてみると使い方が分かってきます。
Pythonの基本で必ず覚えておきたいリスト、ぜひマスターしてみましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから