現在AIブームが到来している背景もあって、プログラミング言語Pythonへの注目や需要が高まっていますよね。僕の周りでもPythonを入門してゼロから学び始めている人をよく見かけますが、プログラミングの勉強を始めたばかりの頃にリストでつまづいたという方は以外に多いのかもしれません。
かく言う僕もプログラミングを勉強し始めた頃は、リストの理解に悩まされていました。今でも思い出すのですが、日差しが強く雨上がりでジメッとした2015年の夏、リストの便利さを知った僕は愕然としました。
そんな便利なことができたのか!!と。。。
Pythonを入門してまもない頃はリストの便利さについてあまりピンとこないものですが、慣れてしまえばリストは非常に便利で強力なツールとしてずっと活用していけるものです!
そこで今回は、そんな便利で役立つリストについて簡単に説明をしていきたいと思います。
そもそもリストってなに?
リストとは、複数の要素を含むコンテナ型オブジェクトのことをさします。
少しわかりにくいかもしれないので、今回はリストをイメージするために次の画像を用意しました。
上の画像はfruitsという変数の中にりんご、みかん、メロン、バナナをlistとして入れたイメージです。上で準備した箱には、基本的にドラえもんの4次元ポケット並みの性能を秘めているため、なんでも入れることが可能です。
この箱の中に自分の入れたい数値や文字列、他にもいろんな値を入れたり引き出したりすることが可能なんですね。話だけしていても中々わかりづらいので、まずは簡単なソースコードを例に一通り説明をしていきましょう。
以降ではPython入門者用に「基本のき」から説明していますが、そんなのわかってるよ!という方は、下の方にリストのメソッドをまとめているのでそこまで読み飛ばしてくださいね。
リストに値を代入する
まず最初に知っておくべきこととして、先ほどの画像のようにリストの値を入れる方法がこちらです。
リストは [ ] の括り、カンマで区切られた要素で構成されています。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ']
これで先ほどの画像のようなイメージで箱の中にフルーツ名が入ります。
それで?・・・だから何?・・・という声が聞こえて来そうなのですが、もしリストがなければ次のように一つずつ変数にフルーツ名を代入する処理をしなければなりません。
>>> fruits_apple = "りんご" >>> fruits_orange = "みかん" >>> fruits_melon = "メロン" >>> fruits_banana = "バナナ"
これではすごく大変ですよね。
この例だけ見てもリストが非常に便利であることがわかります。
リストから値を取り出す
次に、リストに値を入れる方法とは逆に取り出す方法を紹介しましょう。fruits変数の中からりんごを取り出したい場合のコードがこちらです。
>>> print(fruits[0]) りんご
上記では0番目の箱の中から値を出してください。とプログラミングしています。
なぜ1番目からではないの?と不思議に思われる方もいるかと思いますが、今はプログラミングは基本的に0から始まるという風に覚えてください。
ですので1番初めの箱に入っているりんごを取り出す場合は0番目の箱を指定することになります。僕も初めは0番目という概念を知らなかったので、混乱したのを覚えています。
念の為もう一例、メロンを取り出したい場合は下のソースコードのようになります。
>>> print(fruits[2]) メロン
リストに値を代入する方法、リストから値を取り出す方法、ここまでの内容は理解できましたよね。ここからはよく使うリストのメソッドや注意すべき点についてご紹介していきます。
リストメソッドまとめ
これまではリストってなんなの?ことについて説明してきました。
次はリストを便利に使えるメソッドを学んでいきましょう!
リストの要素を追加する基本メソッド
引き続き先ほどのフルーツの例で見ていきますが、まずはリストに追加する処理を覚えていきましょう!
appendメソッド
リスト.append(追加する値)
リストの最後に新しい要素を追加します。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> print(fruits) ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.append('いちご') >>> print(fruits) ['りんご', 'みかん', 'メロン', 'バナナ', 'いちご']
リストの中にリストやオブジェクトを追加することも可能です。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits2 = ['ざくろ', 'さくらんぼ', 'グレープフルーツ'] >>> fruits.append(fruits2) >>> fruits ['りんご', 'みかん', 'メロン', 'バナナ', ['ざくろ', 'さくらんぼ', 'グレープフルーツ']]
insertメソッド
リスト.insert(index(追加したい位置), x (追加したい値))
指定の位置に要素を追加を追加することができます。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.insert(0, 'オレンジ') >>> print(fruits) ['オレンジ', 'りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.insert(3, 'キウイ') >>> print(fruits) ['オレンジ', 'りんご', 'みかん', 'キウイ', 'メロン', 'バナナ']
extendメソッド
リスト.extend(list)
リストとリストを結合する
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits2 = ['ざくろ', 'さくらんぼ', 'グレープフルーツ'] >>> fruits.extend(fruits2) >>> print(fruits) ['りんご', 'みかん', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ', 'グレープフルーツ']
引数をリストではなく文字列で指定すると下記のコードのようになるので、注意が必要です!
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.extend('ざくろ') >>> fruits ['りんご', 'みかん', 'メロン', 'バナナ', 'ざ', 'く', 'ろ']
リストの要素を削除する基本メソッド
ここまではリストへの要素の様々な追加方法を見てきましたので、次は逆の要素の削除について学んでいきましょう!
clearメソッド
リスト.clear()
このメソッドはリスト内の要素を全て削除し、空にします。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.clear() >>> fruits []
下記も`clearメソッド`と同じような処理になります。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits = [] >>> fruits []
popメソッド
リスト.pop(index)
指定した位置の要素を削除し、削除した要素を返り値として取得することができます。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ'] >>> fruits.pop(1) 'みかん'
removeメソッド
リスト.remove(index)
指定した値と同じ要素を検索し、最初に一致した要素を削除します。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ', 'りんご'] >>> fruits.remove('りんご') >>> fruits ['みかん', 'メロン', 'バナナ', 'りんご']
del
del リスト[index]
メソッドではありませんが、`del`でも要素を削除することができます。また`del`では範囲を指定し、一括で削除することも可能です。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ', 'グレープフルーツ'] >>> del fruits[1] >>> fruits ['りんご', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ', 'グレープフルーツ'] >>> del fruits[4] >>> fruits ['りんご', 'メロン', 'バナナ', 'ざくろ', 'グレープフルーツ'] # 範囲指定で削除することも可能です。 >>> del fruits[0:3] >>> fruits ['ざくろ', 'グレープフルーツ']
他にも条件を指定して削除する方法もあるのですが、今回はPythonリストのあくまで入門編ということで説明を割愛します。
リストの要素を検索するメソッド
続いて要素の検索について学んでいきましょう!
indexメソッド
リスト.index(x, start, end)
xと一致する要素のインデックスを取得します。
startとendは指定しなくとも問題はありません。
指定することで、探索範囲を指定できます。莫大なサイズのリストを検索する場合や特定の範囲の値のみを取得したい場合に役立ちます。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ', 'グレープフルーツ', 'りんご'] >>> fruits.index('みかん') 1 # 次のようにすると、1つ目のりんごが無視されて、リストの最後にあるりんごのインデックスが抽出されます。 >>> fruits.index('りんご', 3) 7
countメソッド
リスト.count(x)
リスト内でのxの出現回数を取得することができます。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ', 'グレープフルーツ', 'りんご'] >>> fruits.count('りんご') 2 >>> fruits.count('メロン') 1 >>> fruits.count('白菜') 0
リストのソートするメソッド
続いてリストのソートについて学んでいきましょう!
sortメソッド
リスト.sort(key=None, reverse=False)
リストの並び順をソートします。`reverse`を指定しないと昇順, `reverse=True`とすると降順になります。
#昇順 >>> value = [3, 2, 4, 5, 1] >>> value.sort() >>> value [1, 2, 3, 4, 5] #降順 >>> value = [3, 2, 4, 5, 1] >>> value.sort(reverse=True) >>> value [5, 4, 3, 2, 1]
reverseメソッド
リスト.reverse()
リストの並び順を反転します。
>>> fruits = ['りんご', 'みかん', 'メロン', 'バナナ', 'ざくろ', 'さくらんぼ'] >>> fruits.reverse() >>> fruits ['さくらんぼ', 'ざくろ', 'バナナ', 'メロン', 'みかん', 'りんご']
まとめ
さて、今回はPythonの入門編ということでリストの基本的な使い方についてお伝えしてきました。リストを用いることで煩わしい入力作業を省略できたり、メソッドを活用することで要素の追加、削除、検索、ソートなどが簡単にできることがわかりましたよね。
プログラミング始めたての方でリストでつまづく方は多いのです。最初は複雑でややこしく見えがちなので理解できずに行き詰まることもあるかもしれません。このページを見て参考して頂いたり、何より自分で手を動かしながら色々と試してみることが、早く理解するための1番の方法と言えるでしょう。
Python入門者の方は、今後も楽しみながら勉強を続けていただき、ご自身のプログラミングスキルを向上させていってくださいね(^^)
コメントをどうぞ