python

python

python入門~配列listの使い方と概念 | 独学プログラミング

こちらの記事ではpythonを扱うには欠かせない配列の使い方と概念について、学んでいきます。

特に繰り返し処理を利用する上では欠かせない仕組みです

python配列の概念について

過去の記事で変数について紹介しました。

python入門~変数の使い方

変数は箱を用意して、箱の中に数値や文字列、True/Falseなどのブール型など様々な情報を格納できるという使い方でした。

今回紹介する配列とは変数の中に複数の箱を用意して、出し入れできる仕組みになっています。

python配列の使い方

コード例を確認

早速、配列の良さを実感できるコードを書いてみたいと思います
まず今までの変数を使って、「田中」・「佐藤」・「小林」の3人の名前を表示するプログラムを作ってみましょう
まず3人の名前を変数に入れて、printで表示だね
# それぞれの変数に名前を入れる
name1 = "田中"
name2 = "佐藤"
name3 = "小林"

# 変数をprintで表示
print(name1)
print(name2)
print(name3)
バッチリ!ただこれだと同じような変数を3つ用意する必要があって冗長だよね
こういった課題を解決してくれるのが配列です。こういった形に書き換えることが出来ます
# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# 変数をprintで表示
print(name[0])
print(name[1])
print(name[2])
同じ結果だね!ちょっと複雑な書き方にも見えるけど・・
ルールを知れば簡単です。配列は非常に便利かつ欠かせないものなので次の解説を読んで確実に覚えておきましょう

配列の作り方

まずは配列を作る部分から説明します。コード例の通り、全体を角カッコで囲んで、それぞれの値=要素をカンマで区切って作成します。

非推奨ですが、文字列と数字を混ぜたりということもできます。

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", 1000]

カンマが無かったり、角カッコが閉じられていなかったりするとエラーになるので、気をつけましょう。

配列の取り出し方

以前の例で配列に名前を追加した場合の中身は、以下のような状態になっています。

name変数の中に複数の箱があり、それぞれ左から追加した順に0, 1, 2の添え字がつけられています。

例えば田中を取り出したい時はname[0]のように表現します。

取り出すときも角カッコを使う、中身は箱の番号を入れる。。
1,2,3...じゃないんだね
配列のルールとして1から始まるようになっています。他の言語も同様です

python配列のメソッドや配列に使う関数を紹介

配列にも便利なメソッドが多数用意されています。実際に業務でよく使われる代表的なメソッドを紹介していきますね。

python入門~関数とメソッドの違い

それぞれコード例を使って説明していきます。詳しい説明は公式マニュアルをチェックしましょう。

配列に追加する

array.append ※pythonでは配列をarrayと表現されます

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# nameの後ろに値を追加する
name.append("加藤")

# 変数をprintで表示 [3]に追加されている
print(name[0])
print(name[1])
print(name[2])
print(name[3])

配列から削除する

array.remove

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# 配列から"佐藤"を削除する
name.remove("佐藤")

# nameの要素数を表示する
print(name[0])
print(name[1])
この例では[1]の"佐藤"を削除したことにより、中身が詰められて[1]が"小林"、[2]は存在しない状態になります

name[2]を参照しようとするとエラーになるため気をつけましょう

また公式マニュアルに記載されている通り、最初の1つだけを削除する処理です

配列の要素数を取得する

len関数

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# nameの要素数を取得する
# 実行結果:3
print(len(name))
0かどうかをチェックすることで配列が空かどうかをチェックすることも可能です

リストに値があるかチェックする

値が存在するかをチェックするにはin演算子というものを利用します。

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# 佐藤が存在するかチェックする
# 実行結果:True
print("佐藤" in name)

# 実行結果:False
print("佐々木" in name)

# 逆のチェックもnot inで可能。存在しなければTrue
# 実行結果:False
print("佐々木" not in name)

リストから文字列に変換する

文字列のjoinメソッドを使って変換します。[区切り文字].joinの形です。

str.join

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# nameの配列をカンマ区切りで繋げる
str_name = ",".join(name)

# 実行結果:田中,佐藤,小林
print(str_name)
使いどころとしては処理途中に配列の中身を表示したい場合や、問題発生時にログとして出力して調査に利用するために使われますね

配列のコピー

array.copy

# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]

# nameのコピーを作成する
name_copy = name.copy()

# name[0]を"佐々木"で上書きする
name[0] = "佐々木"

# 実行結果:佐々木,佐藤,小林
print(name[0])
print(name[1])
print(name[2])

# 実行結果:田中,佐藤,小林
print(name_copy[0])
print(name_copy[1])
print(name_copy[2])
例ではコピー元を一部上書きして、コピー元・コピー先を表示しています

コピー後にコピー元のみ変更されていることが分かります

python入門~配列listの使い方と概念

今回の記事では配列の概念の説明から使い方、よく利用される配列の処理について紹介しました。

配列は便利な仕組みですが、しっかり内部の情報を理解していないと、思わぬバグを生むケースを多いため気を付けましょう。

また今回紹介した処理以外にも使いこなすことで便利な関数やメソッドが標準で揃っています。公式マニュアルやWeb検索などで、実際に利用しながら覚えていきましょう。

別の記事で繰り返し処理を使うことで冗長だったprint処理を効率よく書く方法について学んでいきます

この次の記事から条件分岐や繰り返し処理など制御する方法を学んでいきます。

まずはif文を使った条件分岐処理からです。

python入門~if文を使った条件分岐

-python
-

Copyright© ビギナープログラミング , 2020 All Rights Reserved.