ゼロからPython塾 第5回【Chapter4】配列(リスト)デビュー!

こんにちは、さのです。

 BACK NUMBER 

前回(第4回)の記事はこちら。まだ読んでない人はぜひ!

 

まずは前回の復習クイズの答え合わせから始めましょう!

str = 'Hello World!'
print(str)

簡単ですね。strという変数にHello Word!を代入して、それをprint関数により出力しているということです。
「問題は理解したけどそもそもHello World!ってなんだ」と感じた方も多いと思います。それについて説明しましょう。この「Hello World!」と出力するプログラムは、世界一有名なプログラミングとされています。だからどういう意味だと問われても、そういうものなんだよと答えるしかありません。そういう伝統だと思っておいてください。どのプログラミング言語を学ぼうとしても、一番最初に出てくる簡単で有名なプログラミングなので、ここで紹介させていただきました。興味のある人は、「プログラミング Hello World!」と検索してみるのも面白いかもしれません!

 

さて本日は何をやるかといいますと、配列です。並べるんですね。並べるだけです、簡単で~す!Pythonをやる中で基本中の基本なので、しっかりと覚えましょう!

 目次 

【Chapter4】配列(リスト)デビュー!

配列(リスト)と要素
リストの基本的な使い方

すぐ使えるメソッドたち
その他のメソッド

 

配列(リスト)

一口に配列と言ってもいくつかあるのですが、今回はその中でも代表的なリストについてやっていきましょう!
先にも述べたように配列という名前の通り、並べるためにあるものです。リストその一部で、何かしらを並べるためのものです。そんなイメージを持ってスタートです!

配列と要素

まず、配列について。前回、変数を勉強しましたよね。配列はその仲間です。つまり、listという変数に何かしらを並べて入れていくのです。その何かしらというのが要素と呼ばれるもので、要素が連なることで配列となります。もちろん、ただ並べればいいってわけではありません。並べるときには並べたいものを[ ]でくくるというルールが存在します。


[ ]でくくるとリストという配列になる!

 

ではまずこんなもんかと理解するために、実際に並べてみましょう。

list = [1, 2, 3, 4, 5]
print(list)
[1, 2, 3, 4, 5]

listに代入したものがそのまま出力されてきたので、配列にした意味が感じられないかもしれませんが、この[ ]でくくることで、いろいろな作業がしやすくなるのです。次からはその役割について学んでいきましょう。

リストの基本的な使い方

ただ並べた数字たちを出力するだけでは何も意味ありませんよね。実際にどういうことができるのでしょう。やっていきましょう。

①要素の追加(+演算子)
先ほどの[1, 2, 3, 4, 5]に[6, 7, 8, 9, 10]を追加してみましょう。文字列で追加した時と同じルールです。

list = [1, 2, 3, 4, 5] + [6, 7, 8, 9, 10]
print(list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

+ [ ] でリストを追加できる!

 

②要素の削除(del文)
追加ができたなら、削除もできるはずですよね。もちろんできます、削除してみましょう。先ほどの[1, 2, 3, 4, 5]から要素3を消しましょう。消す時に1つポイントがあります。要素の数え方(インデックス)なのですが、1からスタートではなく、0からスタートします。どういうこっちゃという感じかもしれませんが、以下の図をみていただければ理解できると思います。

中の数字にかかわらず、1番左から0スタートで数えられます。消す時に限らず、これからも気を付けていかなければならないことなので、しっかり覚えてください。


リストの要素の数は、0から数える!

 

つまり、[1, 2, 3, 4, 5]から要素3を消すためには、0番目(1)、1番目(2)、2番目(3)ということで、要素の2番目を消すということです。

list = [1, 2, 3, 4, 5] 
del list[2]
print(list)
[1, 2, 4, 5]

del list[ ] でlist内の要素を消せる!インデックスに注意!

 

③リスト内の要素を数える(length関数)
先ほどの[1, 2, 3, 4, 5]の要素数を数えてもらいましょう。調べるまでもなく5つと分かりますが、確認のためということで。

list = [1, 2, 3, 4, 5] 
print(len(list))
5

要素の数が出力されましたね。OKです。lengthというのは長さという意味なので、要素の長さがわかるんですね!


len(list)でlist内の要素を数える!

 

④リスト内の要素を検索する(in演算子)
なんとその配列のなかに指定した要素があるかないかまでわかる検索までできるんです!検索機能は以下のように使います。

list = [1, 2, 3, 4, 5]
print(5 in list)
True

今回は5という要素はlistの中に存在したので、あるよという意味でTrueと出力されました。もし指定した要素がない場合、Falseと出力されます。


print(○ in list)で○がlistの中に存在するかがわかる!

 

以上が配列(リスト)の基本的な使い方です。

配列(リスト)の応用編

ここからは応用編で、メソッドという別の方法でいままでのことと同じようなことができたり、それ以上のことができるようになります!

すぐ使えるメソッドたち

これまでにやった①~④の方法でメソッドを使ってみましょう。

①’ 要素の追加(insertメソッド)
先ほどやった+演算子は、1つ目の配列のあとに付け足すということしかできませんでしたが、このinsertメソッドは既にある配列の中にも付け足すことができます。例えばこんな感じ。

list = [1, 2, 3, 4, 5] 
list.insert(2, 100)
print(list)
[1, 2, 100, 3, 4, 5]

insertのあとに2つ数字が並んでますね。1つ目の数字はどこのインデックスに追加したいかを表しています。2つ目はそのインデックスに何の数字を入れるかを指定します。つまり今回はインデックス2(0から数えるので、2つ目ではなく3つ目ですよ!)に、100という要素を追加してくださいという命令をしたということです。


list.insert(インデックス, 要素)で指定したインデックスに要素を追加!

 

②’ 要素の削除(removeメソッド)
先ほどやったdel文は、インデックスを指定することによって削除していましたね。このremoveメソッドはインデックスの指定ではなく、実際に消したいリストの中の具体的な数字を指定することによって削除できます。

list = [1, 2, 3, 4, 5] 
list.remove(3)
print(list)
[1, 2, 4, 5]

3という要素を指定したので、リストの中から2が削除されました。もしこの指定した値がインデックスだったら3が削除されるはずですよね。ちなみに同じ数字がリストの中に複数個あった場合を考えてみましょう。

list = [1, 2, 3, 4, 5, 3] 
list.remove(2)
print(list)
[1, 2, 4, 5, 3]

要素3を指定したにも関わらず、最初の3だけ削除されて、もう1つの3は削除されませんでした。これを見ればわかるように、removeメソッドで指定した要素は複数あったとしても、リストの初めにあるほうが削除されて、それ以降は削除されません。


list.remove(削除したい要素)でリストの中にある要素を削除!
(複数個ある場合は最初の要素だけ削除される)

 

③’ リスト内の要素を数える(countメソッド)
length関数は、リスト全体の要素数を数えることはできました。しかしある特定の要素を数えることはできませんでしたね。それを可能にするのがこのcountメソッドです。

list = [1, 2, 3, 4, 5, 3] 
print(list.count(3))
2

要素3の数をカウントして2個だよ、と出力してくれました。今回のメソッドは、countメソッドを実行した結果をそのまま知りたいので、それ自体をprint関数の中に入れる必要があります。


list.count(数えたい要素)でリストの中にある特定の要素の数を数える!

 

④’ リスト内の要素を検索する(indexメソッド)
in演算子は検索したい要素がそのリストの中にあるかないかをTrueかFalseで出力してくれましたね。今回のindexメソッドはリストの中にあるとそのインデックスを表示してくれます。

list = [1, 2, 3, 4, 5, 3] 
print(list.index(3))
2

インデックス2に要素3があるので、2と出力されました。インデックス5にも要素3がありますが、これもremoveメソッドと同じで、リストの最初の方の要素の検索結果を表示します。
検索した要素がないとどうなるでしょうか。

list = [1, 2, 3, 4, 5, 3] 
print(list.index(30))
ValueError: 30 is not in list

Falseのかわりに、ちょっとした文でエラーを教えてくれます。


list.index(検索したい要素)でリストの中にあるその要素のインデックスを教えてくれる!
(複数個ある場合は最初の要素だけ)

 

メソッドだけ使えればいいとか、基本的な使い方だけできればいいというわけではありません。どちらも全く同じものではないので、ここで紹介した基本的な使い方とメソッドはマスターしてくださいね!次はちょっと応用です。

その他のメソッド

⑤要素を順番に並べる(sortメソッド)

乱雑に並んだ要素を辞書順にきれいに並び替えることができるメソッドです。

list = [4, 1, 2, 5, 3]
list.sort()
print(list)
[1, 2, 3, 4, 5]

乱雑に並んだ4, 1, 2, 5, 3が1, 2, 3, 4, 5と辞書順に見やすくなりましたね。
今まで、リストの中は数字しか入れてきませんでしたが、文字列も入れることができます。

list = ['B', 'E', 'D', 'C', 'A']
list.sort()
print(list)
['A', 'B', 'C', 'D', 'E']

文字列のルール覚えていますか?クオーテーションマークをつける必要がありますね!このように、文字列もきれいに並べることができました。


list.sort()で辞書順に並び替え!

 

⑥要素を逆順に並び替える(reverseメソッド)

もとの順番と、逆に並び替えることができるメソッドです。

list = [4, 1, 2, 5, 3]
list.reverse()
print(list)
[3, 5, 2, 1, 4]

辞書順の逆になるわけではないので、注意してください。辞書順の逆にしたい場合は、1度sortメソッドを使って辞書順にしてからreverseメソッドで逆にする必要があります。もちろん、文字列でも同じことがいえます。


list.sort()で逆順に並び替え!

 

いかがだったでしょうか。今日はリストの基本的な使い方4個(①~④)、それを応用したメソッド4個(①’~④’)、並び替えるメソッド2個(⑤、⑥)の合わせて10個をバッチリ覚えてくれれば完璧です!読むだけで無理に覚えようとするのではなく、自分でプログラムを組んでいくことで徐々に覚えていくものなので、気楽にやっていきましょう!復習クイズはその暗記の手助けにもなっているので、ぜひやってみてください!解答は次回です。


最初に次の配列 list = [12, 60, 28, 19, 33] を用い、今日の内容をフル活用し、できるだけ簡単に以下のような実行結果を出力せよ。
[12, 60, 28, 19, 33, 59, 41, 104]	
[104, 60, 41, 33, 28, 19, 12]

 

※私はWindows派なので、この記事の通り進めていくとMacを使っている方はうまくいかないことがあるかもしれません。が、お許しください。もしご要望があれば、頑張って対応していきたいと思います。ちなみに私はDELLのXPS13、Windows10でやっています。
※記事を読んでいて「おかしいぞ?」とかプログラミングをして「実行してもエラーだぞ?」などあったら遠慮なく以下のメッセージから教えてください。お願いします!その他疑問も受け付けております。

最後まで読んでいただきありがとうございました。

 NEXT NUMBER 

次回(第6回)はもう少しお待ちください!

ではまた!!!!!

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
AINOW編集部がピックアップしてお届けしています。
以下のフォームから、お気軽にご登録ください♪

こちらの規約にご同意のうえチェックしてください。

規約に同意する