Pythonでプログラミングをする際によく使用される機能の1つに、リストというものがあります。
今回の記事では、リストの基本的な使い方から、使用すると便利なメソッドなどについて、詳しく解説していきたいと思います。
Pythonのリストとは?
リストは、複数のデータを要素としてまとめて取り扱うことができるオブジェクトです。
厳密には異なりますが、プログラミング全般において 「配列」 と呼ばれるものとほとんど同じ機能を持っています。
Pythonのリストは可変長のため、既存のメソッドを使用して要素の追加や削除を容易に行うことができます。
その他にも、特定の演算子や関数を使用することで、リスト内の要素を検索したり、要素数をカウントしたりすることもできます。
Pythonには、リストの他にも複数の要素をひとまとめにして扱う機能がいくつかありますが、最も基本的で、かつ頻繁に使用されているのがこのリストになります。
リストの基本の使い方
まずは、リストの基本的な使い方について解説します。
リストの作成方法と合わせて、よく使用されるメソッドについても紹介していきたいと思います。
リストの作成と初期化
Pythonのリストは、[ ] の中に各要素をカンマで区切って格納します。
【基本構文】
配列名 = [要素1, 要素2, ...]
【サンプルコード】
sampleList = [1, 2, 3, 4, 5]
print(sampleList)
【実行結果】
[1, 2, 3, 4, 5]
リストの初期化を行う場合は、以下のように記述します。
【サンプルコード】
sampleList = []
# または
sampleList = list()
[] はリストを直接生成するリテラルで、list() は空のリストを生成して返す関数です。
空のリストが変数に代入されるという結果は変わりませんが、前者の方が生成速度は速くなります。
ただし、生成後のリストの処理速度には影響しないため、実際にはどちらを使用してもパフォーマンスに大きな違いはない場合がほとんどです。
開発時のルールなどに合わせて、好みの方を使用するといいでしょう。
先ほどの例に挙げた sampleListでは、すべての要素をint型で構成していましたが、Pythonのリストは要素ごとの型が異なっていても一まとめに取り扱うことができます。
【サンプルコード】
sampleList = ['りんご', 300, 'いちご', 500, 'ぶどう', 450]
print(sampleList)
【実行結果】
['りんご', 300, 'いちご', 500, 'ぶどう', 450]
リストの要素を取り出す場合は、以下のようにインデックス番号を指定します。
ただし、インデックスは 0 から始まる点に注意が必要です。
【サンプルコード】
sampleList = ['東京', '北海道', '大分']
print(sampleList[0])
【実行結果】
東京
リストに要素を追加: appendメソッド
新たな要素をリストに追加したい場合は、appendメソッドを使用します。
メソッドを使用する際の構文は、以下のように記述します。
【基本構文】
リスト名.append(追加する要素の値)
【サンプルコード】
sampleList = ['東京', '北海道', '大分']
sampleList.append('名古屋')
print(sampleList)
【実行結果】
['東京', '北海道', '大分', '名古屋']
appendメソッドで追加した要素はリストの末尾に加えられます。
リストの要素を削除: removeメソッド
反対に、要素の削除を行いたい場合には、removeメソッドを使用します。
メソッドを使用する際の構文は、以下のように記述します。
【基本構文】
リスト名.remove(削除する要素の値)
サンプルコードで実際の動きを見てみましょう。
【サンプルコード】
sampleList = ['東京', '北海道', '大分', '名古屋']
sampleList.remove('名古屋')
print(sampleList)
【実行結果】
['東京', '北海道', '大分']
removeメソッドでは、リスト内に存在しない値を指定すると、以下のようなエラーが発生してしまいます。
【サンプルコード(エラー)】
sampleList = ['東京', '北海道', '大分', '名古屋']
sampleList.remove('沖縄')
print(sampleList)
【実行結果(エラー)】
Traceback (most recent call last):
File "Main.py", line 5, in <module>
sampleList.remove('沖縄')
ValueError: list.remove(x): x not in list
リストの要素を検索: in演算子
リスト内に特定の要素が含まれているかどうかを調べたい場合には、in演算子を使って検索することができます。
removeメソッドの実行前に値が存在するかを確認したりなど、様々な場面で活用できます。
【基本構文】
検索する要素の値 in リスト名
演算結果は、True か False のどちらかが返却されます。
サンプルコードで実際の動きを見てみましょう。
【サンプルコード】
sampleList = ['東京', '北海道', '大分', '名古屋']
print('大分' in sampleList)
【実行結果】
True
真偽値が結果として返されるため、以下のように if文の条件式に使用することもできます。
【サンプルコード】
sampleList = ['東京', '北海道', '大分', '名古屋']
if '大分' in sampleList:
sampleList.remove('大分')
print(sampleList)
【実行結果】
['東京', '北海道', '名古屋']
リストの要素数をカウント: len関数
リスト内の要素数を調べたい場合には、len関数を使用して要素の数をカウントします。
使用する際の構文は以下の通りです。
【基本構文】
len(リスト名)
【サンプルコード】
sampleList = ['東京', '北海道', '大分']
print(len(sampleList))
【実行結果】
3
この方法を使用して、for文のループ回数の指定に応用することなどもできます。
【サンプルコード】
sampleList = [1, 2, 3]
for i in range(len(sampleList)):
sampleList[i] = sampleList[i] * 10
print(sampleList)
【実行結果】
[10, 20, 30]
リストの応用的な使い方
ここまでは、リストの作成方法や一般的に使用されるメソッドなど、基本的な内容についての解説を行ってきました。
ここからは、いくつかの応用的なリストの使用方法について説明していきたいと思います。
リスト内包表記
例えば、「要素の値を倍にしたリストを新たに作成したい」 といったように、既にあるリストを元に新しいリストを作成したい場合などに便利なのが、リスト内包表記という記述方法です。
同様の処理を for文を使用して行うことも可能ですが、この方法を使うことでより簡潔にコードを記述することができます。
また、同じ処理を for文で記述した場合とリスト内包表記で記述した場合では、リスト内包表記の方が処理速度が速いという利点もあります。
まずは、for文で処理した場合のサンプルコードを見てみましょう。
【サンプルコード(for文)】
sampleList = [1, 2, 3]
result = []
for val in sampleList:
result.append(val * 2)
print(result)
【実行結果】
[2, 4, 6]
続いて、リスト内包表記で処理した場合のサンプルコードを見てみましょう。
【サンプルコード(リスト内包表記)】
sampleList = [1, 2, 3]
result = [val * 2 for val in sampleList]
print(result)
【実行結果】
[2, 4, 6]
結果は同じですが、こちらの方が少ない行数で記述することができます。
上記のサンプルコードを見ると分かるように、処理内容に続いて for文と同じ方法で条件式を記述するのが、リスト内包表記の基本構文となっています。
リストの文字列を結合: joinメソッド
リスト内の文字列型の要素同士を結合して、新たに文字列型の変数を作成したい場合には、joinメソッドを使用して処理することができます。
使用する場合の構文は、以下のように記述します。
【基本構文】
区切り文字.join(リスト名)
区切り文字には、要素同士の間に入れる文字列を指定します。
区切り文字の文字数に制限は特になく、空文字を指定することも可能です。
【サンプルコード】
sampleList = ['Hello', 'World!']
str1 = ''.join(sampleList)
str2 = ',my'.join(sampleList)
print(str1)
print(str2)
【実行結果】
HelloWorld!
Hello,myWorld!
一点、joinメソッドを使用する際の注意点として、リスト内の要素をすべて文字列型で揃える必要があります。
他の型の要素が含まれているとエラーが発生してしまうため、使用の際には注意しましょう。
リストと辞書の違いとは?
リストと辞書の最も大きな違いは、要素にアクセスする際にインデックスとキーのどちらを使用するかです。
リスト内の要素へのアクセスにはインデックスを使用しますが、辞書の場合は生成時に指定した任意のキーを使用して要素にアクセスします。
以下のサンプルコードで、それぞれのアクセス方法の違いを見てみましょう。
【サンプルコード】
# リスト
sampleList = ['りんご', 'バナナ', 'みかん']
# 辞書
sampleDic = {'りんご': 10, 'バナナ': 30, 'みかん': 25}
print(sampleList[1])
print(sampleDic['バナナ'])
【実行結果】
バナナ
30
リストはインデックスによって要素を順序付けることができるため、時系列や連続する番号などによって管理を行うデータの処理に適しています。
一方、辞書は任意のキーワードに関連付けて要素を格納することができるため、特定の種類ごとにデータを整理したい場合に適しています。
Pythonでの辞書型の扱いについては、以下の記事でも詳しく解説しています!こちらもぜひお読みください。
まとめ
いかがでしたか?
今回は、Pythonのリストの使い方について解説しました。
実際の開発現場においても必須の知識と言えるほど頻繁に使用される機能ですので、ぜひ使い方を覚えて活用してみてくださいね!
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。