【Python入門】listの使い方とメソッドまとめ

Pythonのリストって何?
リストの基本的な使い方を知りたい

Pythonでは値をひとまとめに管理するためのリストがあります。

今回はPythonにおける基本的なリストの使い方や、覚えておくと便利なメソッドについて解説していきます。

初歩的な内容から発展的な内容についてもやさしく解説していきますので、ぜひ参考にしてください。

※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。

リストとは

リストとは、複数の要素を含むコンテナ型オブジェクト(英: コンテナ=容器)の事を指します。

リストの大きなメリットとして、一度に多くの連続したデータを扱える、という事があげられます。既存のメソッドを活用し、要素の追加や削除、検索やカウントなどといったさまざまな操作を行う事も出来ます。

リスト以外にも、複数の要素をまとめたオブジェクトがあります。

  • set
  • tuple
  • dict
  • numpy.array


この中でも、他の言語の配列に当たるのがnumpy.arrayです。

そちらについては以下の記事で解説しています。

さて、これら複数の要素が使えるオブジェクトもそれぞれが得意なこと、不得意なことがあります。

その中でもリストは、以下のような利点があります。

  • 柔軟でどんなリストでも入れられる
  • 普通の配列のように扱える

しかし、以下のような欠点もあります。

  • tupleのように変更不可能ではないため、辞書の鍵としては使えない
  • numpy.arrayよりは全然遅い

リストの基本

リストの作成と初期化

リストは、[ ] の中にカンマで区切られた要素で構成されています。

リストの初期化は、以下のように行います。

mylist = []
# または
mylist2 = list()

ご覧いただけるように、[ ] の中身を空で宣言するとリストが初期化されます。

このmylistの中には要素がひとつも入っていません。また、初期化と同時に要素を追加することも出来ます。

以下のコードをご覧ください。

mylist = [1,2,3,4]
print(mylist)

上記コードでは、mylistというリストを宣言してint型の要素を追加しました。以下のように出力されれば成功です。

[1, 2, 3, 4]

また、リストの要素を一つずつ表示したい時は、for文を使用すると良いでしょう。for文の使用方法の詳細については以下のリンクを参照してください。

【Python入門】for文による繰り返し処理まとめ
更新日 : 2019年7月1日

先ほど作成したmylistはすべての要素がint型ですが、Pythonのリストは構成する各要素の型が違っていても成り立つのです。

mylist2 = ["Hello", 1, "world", 2, "!"]
print(mylist2)
[出力結果]
['Hello', 1, 'world', 2, '!']

上のサンプルコードで作成したmylist2は文字列型の要素とint型の要素を含むリストとなっています。

appendメソッドで要素を追加

では、リストの作成方法を学んだところで、様々なメソッドをご紹介していきたいと思います。

まずはappendメソッドを使用して、リストに新たな要素を追加してみましょう。

appendメソッドは引数に追加したい要素の値を要します。

mylist = [1,2,3,4]
mylist.append(5)
print(mylist)
[出力結果]
[1, 2, 3, 4, 5]

上記コードでは、appendメソッドを使用してmylistに新たな要素「5」を追加しました。

removeメソッドで要素を削除

要素の追加とは反対に、要素の削除方法も覚えておきましょう。

要素の削除はremoveメソッドで行います。removeメソッドは引数に削除したい要素の値を指定します。

mylist = [1,2,3,4,5]
mylist.remove(5)
print(mylist)
[出力結果]
[1, 2, 3, 4]

上記コードでは、removeメソッドを使用し要素を一つ削除しました。

万が一、removeメソッドの引数にリスト内に存在しない値を指定するとエラーが発生します。

mylist.remove(7)
[出力結果]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

上のコードでは、mylist内に存在しない要素「7」を削除しようとしたのでエラーが出力されました。

in演算子で要素を検索

リストにある特定の要素が含まれているかどうかを調べるときには、in演算子を使うことができます。

in演算子は 要素 in リスト という風に使用し、戻り値はTrueかFalseです。

mylist = [1,2,3,4,5]
print(3 in mylist)
print("Hello" in mylist)
[出力結果]
True
False

上記コードでは、in演算子を使用し、「3」と文字列Helloが存在するかを確かめてみました。

3はmylistに含まれているので、Trueと表示されました。

Helloはmylistに含まれていないので、Falseと表示されました。

len関数で要素の数をカウント

リスト内にいくつ要素が含まれているかを調べたい時は、len関数を使用して要素の数をカウントしましょう。

len関数は、引数に要素の数を調べたいリストを指定します。

length = len(mylist)
print(length)
[出力結果]
5

上のコードでは、mylist内に含まれる要素の数をカウントしてみました。

ご覧いただけるように、正常に4と表示されましたね。

リストの応用

これまではリストの作り方から基本的なメソッドのご紹介と、初歩的な内容を解説してきました。

ここからは、少し応用的な内容を深めて行きましょう。

リスト内包表記

今手元にあるリストを元に、新たなリストを作成するにはどうすればよいのでしょうか。

例えば、あるリストの要素を全て二倍にしたい場合などです。もちろんfor文を使用して、新たなリストを作成することも出来ます。

しかし「リスト内包表記」を使用すると、コードが短縮できて便利なんです。では早速使い方をご紹介したいと思います。

old = [1,2,3,4, "Hello", "World"]
new = [i*2 for i in old]
print(new)
[出力結果]
[2, 4, 6, 8, 'HelloHello', 'WorldWorld']

上のコードでは、oldというリストを元にnewという新たなリストを作成してみました。

newの要素は、oldの各要素を二倍にしたものです。int型要素は1から2へ、2から4へなど、正常に二倍になっていますね。

文字列型であるHelloとWorldはHelloHelloとWorldWorldになりました。リスト内包表記とは、newの宣言の際 [ ] の中にfor文のようなものを当てはめる記法のことです。

joinメソッドで文字列を作成

リストを元に文字列型の変数を作成したい場合は、joinメソッドを使いましょう。

joinメソッドは文字列型のメソッドです。基本的な構文は hoge.join(list) です。

hogeの部分は任意の区切り文字です。

mylist= ["1","2","3","4", "Hello", "World"]
str1 = ''.join(mylist)
str2 = ' '.join(mylist)
print(str1)
print(str2)
[出力結果]
1234HelloWorld
1 2 3 4 Hello World

上のコードでは、mylistをベースにstr1とstr2といった二つの文字列を作成してみました。str1の区切り文字として何も指定しなかったので、1234HelloWorldといった要素がすべて連結した文字列が出力されました。

反対に、str2の区切り文字はスペースを指定したので各要素がスペースによって分けられています。ここで注意したいのは、mylistのようなベースのリストの全ての要素が文字列型でないとエラーが発生してしまう点です。

このままPythonを学び続けて大丈夫?

なぜPythonを学ぶのか?

あなたがPythonを学ぶ理由は何でしょうか?

  • Pythonが人気だからとりあえず学んでいる
  • AIや機械学習の分野に興味があるから

Pythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。

しかし、もしあなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。

機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。ただなんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも…。

そのため、挫折しないためには、

  • 機械学習に最適な学習環境を用意する
  • 必要なライブラリ・ツールを導入する
  • わからないことを質問できるメンターを見つける

などが必要になります。

効率よく学びたいなら、無料体験レッスンがおすすめ

このままPythonを学び続けていいのかな…
まだまだ知りたいことがたくさんある!
もっと詳しくPythonについて知りたい!

といった悩みや願望を持っている方は、弊社「侍エンジニア塾」をご利用下さい。

侍エンジニア塾では、

  • 現役エンジニアによるマンツーマンレッスン
  • キャリアアドバイザーによる転職・就職支援
  • 業界屈指のフリーランス・起業サポート

を受けることができます。

業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。

侍エンジニア塾
無料体験レッスンを受ける

まとめ

今回はPythonにおけるリストの基本的な操作から、リスト内包表記やjoinメソッドなどといった応用編まで解説しました。

覚えておきたいポイントは

  • appendやremoveといった基本的なメソッドはぜひ習得
  • リスト内包表記はコードの縮小に便利
  • joinメソッドで文字列も作成しよう

といったところですね。

ではみなさんも、この記事を通してリストについての知識をどんどんと深めて行ってくださいね。

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

Kotono

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説