Pythonの書き方

【Python入門者でも分かる図解説明記事】list(リスト)型(配列)について解説!

python-list

こんにちは!中川です!

リストについて解説します!

らすかる
らすかる
リストって何だにゃ?
中川
中川
リストとは一つの変数に複数の情報を入れる事ができる、「袋」のようなイメージだよ。

例えば、たくさんの変数を扱いたい時にすべての変数に対して何かの操作をするのは、凄く大変ですよね?

しかしリストを用いる事で、要素というものの番号を指定するだけで複数の変数の操作が可能になるのです。

 

ではリストについて詳しく学んでいきましょう!

リストの書き方

python-list1

リストはこのように書けます。

大カッコ[ ]で囲むことで、それがリストになります。

このカッコ[ ]の中身、1つ1つを「要素」と言い、0番目から始まります

これは注意が必要です。

 

また、リストの中身は、文字でも数値でも、どんな型でも入ります。

では、具体的にコードを書いてみましょう。

結果:

このように、リストの中身にリストを入れる事もできます

また、リストはlist型で各要素はそれぞれ文字列型であったり、整数型であったり様々であることが分かると思います。

リストの操作

要素の数を調べるにはlen関数

あるリストに含まれる要素の数を調べるには、

文字列の数をカウントする方法でも出てきた、len関数が使えます。

例えば次のように書きます。

結果:

このように要素数が4と分かりました。

最後の要素を取得するには?(len関数を使わない方法)

最後の要素を取得するには、len関数で要素数を調べて、その数を入れてもいいのですが、

もっと簡単に書けます。

それは[-1]と書く方法です。

こうすることで、最後の要素にアクセスできます。

結果:

このように簡単に最後の要素を調べられます。

さらに、[-2]とすれば最後から2番目の要素も調べられます

その他の要素の確認方法

要素の存在確認には「in」が使える

要素の中に特定の文字や数が入っているか確認するには「in」が使えます。

inはその文字または数が入っていればTrueを返します

今回の場合2要素目に「3」がありますので、Trueが返されます。

同じ内容の要素がいくつあるか数える

同じ内容の要素がいくつあるか数えるにはcountメソッドを使います。

結果:

このように今回は「1」が3つ含まれているので3と返されます。

要素の位置

ある要素の位置を検出するにはindexメソッドがあります。

結果:

位置は要素の番号で返されます

また、重複する要素があると初めの要素の位置が返されます。

「3」の要素は2番目なので、2が返されていますね。

リストのスライス

部分要素の取り出しを行うことを「スライス」と言います。

スライスは次のような構成で書けます。

[開始位置:終了位置:ステップ数]

また、これらは省略することもできます。

省略するとそれぞれ、開始位置は0、 終了位置は要素数,ステップ数は1 となります。

例を見ていきましょう。

結果:

このようになります。

空のリストを作る

何も入っていないリストを作るには、[ ]で中には何も書かないと空のリストとなります。

結果:

リストのコピー

リストのコピーには2つの方法があります。

結果:

どちらもコピーした結果は同じですが、正確には違います

そこでidというものを比べましょう。

 

  • 代入でidを調べる

このようにすると、コピー元のリストとidが同じなので、全く同じものと言えます。

代入はつまり「参照」のようなイメージなのです。

  • 内容のコピーを調べる

これはidがコピー元と異なるので全く違うものと言えます。

ですので、新しくリストをコピーしたいとなると、こちらの方法を使うと良いでしょう。

リストの要素の追加、削除

リストの要素は追加したり、削除したりできます

これも便利な点です。書き方は次のようになります。

python-list9

具体的なコードを書くと、

このようになります。

追加」と「拡張」の違いは追加は要素を一つしか追加できませんが、拡張は複数同時にできるです。

要素の削除は、要素番号を指定しなければなりません

 

また、5,6行目に示すような方法でリストの結合(足し算)や拡張ができます

要素のソート(昇順化)

要素はsorted関数sortメソッドを使う事で順を入れ替える事ができます。

まずはsorted関数の例を書きます。

結果:

要素の中身の数がバラバラだったのが、大きい順や小さい順になっています。

このようにして、要素の中身を整頓できます。

また、引数の中にコンマ(,)でreverse = Trueと書くと降順にできます。

 

次はsortメソッドについてです。

結果:

同様に要素の順番を入れ替える事ができました。

sorted関数とsortメソッドはどう違うのか?

一般的にsorted関数は「非破壊的ソード」、sortメソッドは「破壊的ソート」と言われます。

これはどういうことかと言うと、先程のプログラムの例を見ていただきのですが、

sorted関数は実行しても変数aの中身は変わっていません

つまり非破壊だったのです。

 

しかし、sortメソッドは実行後、変数aの中身が変わっています

つまり、もともとあった変数aを壊して、新しいaになったのです。

これらを非破壊、破壊的と言っているのです。

 

ですので、sorted関数を使うと変数aの中身は書き換えられませんし、sortメソッドを使うと書き換えられます

これらは用途によって使い分けてください。

まとめ

今回は結構長くなりましたが、リストはpythonを書く上でかなり多用しますので重要です。

それぞれの動作結果をしっかり見て理解しましょう!

 

文字を繋いだり、分割したりできるjoinメソッドsplitメソッドというものがあります。

これは文字列とリストの関係を使ったものですので、興味があれば読んでください!

【Python入門者でもわかる図解説明記事】join、splitメソッドについて。こんにちは!中川です! 今回は文字列リストについて説明します。 文字列リストとはリストの中身が文字列になっているものです。 例...

ここまで読んでいただきありがとうございました!

もっと効率よくプログラミングを学びたいなら

プログラミングをもっと早く、しかも基礎をしっかり固めたいという方はプログラミングスクールを利用することをオススメします。

TechAcademyは自宅で学べるオンライン型のスクールです。
無料体験から始めることができ、Pythonやウェブデザイン、アプリケーションの製作方法などを学べます。

TechAcademyを無料体験する