てつまぐとは?

Pythonのlist(配列)の使い方

変数では1つのデータを取り扱っていますが、データ解析では何万というデータを取り扱います。

その時、変数も同じ数だけ用意すると、どの変数がどの値かわからないですし、コードがごちゃごちゃしてしまいます。

データを複数まとめて扱う場合には、配列という考えがあります。

今回は配列であるlistについて習得していきます。

数値や文字列について取り扱いますが、listや変数もそうですが、関数を取り扱うこともできます。

数値や文字列だけにとらわれてしまうと、他の人のコードをみたときに??となるので、頭の隅にでも置いてください。

配列について

変数で1つのデータを取り扱いますが、配列では複数のデータを扱うことができます。

例えば、5,4,7,9,4の数値をまとめて取り扱いたいとします。

この時は、下記のように宣言します。

イメージ的には、下記のようになります。

num_listには5つの数字がまとめて入っていて、

データを取り出すのに必要な配列番号(index)があり、0〜割り当てられています。

配列にはlist以外にもtupleがあります。

listは配列にデータの追加などができるのに対して、tupleは変更ができないものです。

本記事ではlistを取り扱っていきます。

データは追加削除など変更ができた方が便利なためです。

listの基本

新規作成

listの作成は角括弧([ ])のなかに、カンマ(,)区切りでデータを入れていくだけです。

配列名 = [データ1, データ2, …. , データn]

先ほどと同じになりますが、5つのデータのlistを作ってみます。

num_listがlist型になっているかtypeを使って確認することができます。

listとなってますね。

次のように、データを何も入れないと、空のlistを作ることができます。

listを初期化するときなどに使います。

データを取り出す

次に配列からデータを取り出してみましょう。

取り出すには、次のように配列番号であるindexを指定します。

1つ取り出す

まず、1つだけ取り出します。配列名[index]で取得できます。

実行するとaに4が取得できます。indexは0から始まるので1とすることで、2つ目の4が取得できます。

複数取り出す

次は、複数を取り出してみましょう。

配列名[開始index:終了index]のように開始、終了indexを指定することで取得できますが、終了indexの1つ手前まで取得するので注意が必要です。

2つ目から3つ目の4,7を取得する場合は、開始indexを1、終了indexを3とするので、下記コードになります。

終了indexまで含まれないので、違和感を感じる方は覚えておきましょう。

indexにマイナスを使う

indexにマイナスを使う場合があります。

0から割り当てられているindexですが、下記のイメージのように、後ろに同じ配列がつながっているかのようにマイナスのindexが割り当てられています。

-2のindexを使ってみましょう。

後ろから二つ目の9が出力されます。

データ数確認

listがどれくらいのデータ数を持っているか確認していきます。

確認方法は簡単で、len関数を使います。

今、num_listには5つの数字を入れているので、その長さである5が取得できます。

簡単ですが、よく使いますので、覚えておきましょう。

for文と使う

listとfor文の組み合わせは必須となってきます。

次の二つの構文を押さえておけば十分です。

for文にはイテラブル(繰り返し可能な物)を使いますが、そこにlistを使います。

変数にはlistの中身が繰り返し入っていき、それが繰り返されます。

実際に使ってみましょう。

1つ目の構文です。

リストの数字が順番に出力されます。

次に2つ目の構文です。

配列番号と数字が出力されます。

メモ

printではカンマ(,)区切りで表示したいデータを渡すことができます。

データを追加、連結

listのデータの追加の方法を習得していきましょう。

方法は以下のような3つの方法がありますが、listにlistを追加する方法が本来の機能を理解しやすいので、[0, 0]のlistを追加していきます。

メソッド 機能 イメージ
append listの最後に追加
extend listの最後に別のlistやtupleを繋げる
insert listの途中に追加

append

appendはlistの最後に新しく追加します。

追加するのは、数値、文字、配列、関数何でも追加可能です。

今回は機能のわかりやすさのため、新しい[0, 0]を追加します。

num_listには5つの数字がありますが、appendを使うと、6つ目の箱ができそこにデータが追加されます。

イメージと合っていたでしょうか?下記のようなイメージを持った方もいるのではないでしょうか?

配列ではなく、単に0などの数値を追加するとイメージ通りになります。

 

extend

listとlistを連結する場合は、extendを使います。

extendを使わなくても、「+」でも連結できます。

この場合は、「=」で連結した値を入れる必要があります。

insert

insertはindexを指定できる、appendのようなものです。

insertでは追加するindexを指定しますので、insert(index, 追加するもの)となります。

index=1に[0, 0]を追加してみます。

データの削除

削除もいくつかメソッドがあります。

メソッド 機能 イメージ
clear 全削除 全部消えるだけなので省略
pop listの一部を取り出しつつ削除
remove listの一部を削除

 

全削除

全削除は方法が2つあります。

clearメソッドを使うか、空のリストを入れ直します。

1つ目clearメソッドを使ってみましょう。

listが空になりましたね。

次は、空のlistを入れます。

こっちの方が、使っている方は多いですね。

取得して削除

listの一部を取り出すpopメソッドを使います。

取り出す機能ですので、listから削除されます。

popメソッドをそのまま使うと、listの最後から取り出します。

取り出した値と取り出されたlistが表示されますね。

popにindexを指定することで、そのindexを取得できます。

index=1を指定してみます。

index=1の4が取得できます。

データを指定して削除

removeメソッドを使うことで、indexではなく、データを指定して削除することができます。

4を指定して削除します。

2つがある場合は、最初に該当するデータのみ削除されます。

もう一つの4は残ってますね。

 

データの並び替え

データの並べ替えにはsortメソッドを使います。

昇順

まずは、昇順から

降順

降順は引数にreverse=Trueを入れます。

 

以上までが、基本的な使い方です。

listの応用

listは色々と他にも使い方がありますので、紹介していきます。

多次元配列

listでは多次元を扱うことができますが、今回はわかりやすく2次元を説明します。

2次元はlistの中にlistを入れるだけです。

次のようなデータをlistで作ってみましょう。

名前 社員コード 年齢
Aさん 00001 35
Bさん 00002 40
Cさん 00003 54
Dさん 00004 23
ついでに、lenでlistの長さを確認していますが、1次元目の長さのみ表示されます。

2次元データはlistでも良いですが、基本的に多次元データはnumpyというライブラリを使うことをお勧めします。

検索

listの中にデータが含まれるのか?含まれるならどこにあるのか?など検索をすることができます。

inを使う

listの中に含まれるかの確認はinを使います。

検索対象 in list

いくつか例を示します。

完全一致でないと、一致しているTrueの結果が返ってこないことがわかります。

これはif文でよく使います。例えば、

といった感じです。

indexを使う

検索対象がどこに格納されているか確認する場合にはindexを使います。

list.index(検索対象)

計算

listで数値を扱う場合は、よく計算もします。

一通り計算方法を説明していきます。

計算には[5, 4, 7, 9, 4]を再度使います。一度下記を実行しておきましょう。

 

最大値

max関数を使います。

最小値

min関数を使います。

合計

sum関数を使います。

平均

平均はないので、sumで合計を算出して、lenでデータ数で割ります。

 

統計的な計算はstatisticsを使うことでできます。

下記でstatisticsをimportしましょう。

標本標準偏差

stdev関数を使います。

中央値

median関数を使います。

カウント

count関数を使うことで、listに含まれるデータ数を数えることができます。

ない場合は、0となります。

まとめ

覚えるのは大変かもしれませんが、よく使うものばかりですので、ぜひ習得していってください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です