【Python】配列(list)でできることすべてを実例付で解説

Python

(最終更新月:2022年12月)

✔このような方へ向けて書かれた記事となります

「Pythonの配列(list)をマスターしたい」

「Pythonの配列操作はどうやってやるの?」

「実際の具体例がないとわかりづらい、、、」

✔当記事を通じてお伝えすること

  • 配列の作り方|宣言・初期化について
  • 配列の操作方法
  • 配列の使い方

当記事では、配列(List)の作り方や操作方法はもちろん、それぞれ具体的な実例まで合わせてご紹介します。

ぜひ最後までご覧ください。

profile_icon

【Python歴】10年 x 【営業マン歴】11年

HP作成、社内システムの構築、コンサルティング

Pythonベースのフレームワーク 「Django」を使って下記のようなサイトを作っています!

日報アプリ
当ブログで一から開発方法を解説している日報アプリ(デモ版)です
ツールアプリ
当ブログで紹介したPythonアプリのWeb版です。DjangoAPIとReactで開発。随時更新中です。
  1. Pythonの配列(List)とは?
  2. Pythonで配列を作る方法|宣言・初期化
    1. 空のリストを作る方法2選
    2. 要素入りのリストを作る方法
    3. ほかのデータ型から変換する方法
      1. listメソッド
      2. splitメソッド
  3. Pythonの配列操作でできること一覧
  4. 【Pythonの配列操作】要素を追加する
    1. append:最後尾に追加
    2. insert:追加位置を指定
  5. 【Pythonの配列操作】要素を削除する
    1. del:オフセットを指定
    2. remove:値を直接指定
    3. pop:要素を取り出しながら削除
    4. clear:すべて消去
  6. 【Pythonの配列操作】配列同士を結合する
    1. extend:ひとつめのリストに2つめのリストを追加
    2. +=演算子:ひとつめのリストに2つめのリストを追加
    3. +演算子:結合された新たなリストを作成
  7. 【Pythonの配列操作】要素の検索をする
    1. in演算子:あるかどうかを調べる
    2. indexメソッド:オフセットを調べる
    3. countメソッド:数を数える
  8. 【Pythonの配列操作】要素を並び替える
    1. sortメソッド:順番に並び替える
    2. reverseメソッド:逆順に並び替える
    3. sortedメソッド:並び替えた新しいリストを作る
  9. 【Pythonの配列操作】最大・最小値を求める
    1. max関数:最大値を求める
    2. min関数:最小値を求める
  10. 【Pythonの配列操作】要素を取り出す
    1. オフセット:ひとつ取り出す
    2. スライス:複数取り出す
  11. 【Pythonの配列操作】要素を書き換える
    1. オフセット:ひとつだけ書き換える
    2. for文とenumerate:一括もしくは条件付きで書き換える
    3. 内包表記:一括もしくは条件付きで書き換える
  12. 【Pythonの配列操作】ほかの要素へ変換する
    1. joinメソッド:要素同士を繋げて文字列に変換する
    2. tupleメソッド:リストをタプルに変換する
  13. まとめ:Pythonの配列でできることはたくさんある

Pythonの配列(List)とは?

Pythonの配列(list)とは、複数のデータが集まったデータ型です。

ほかにも複数のデータが集まったものはありますが、配列の特徴は以下のとおり。

  • 要素に順番がある
  • 要素の追加や削除、書き換えが可能
  • 備わっているメソッドがある

配列のデータ型を調べると以下のようになります。

#sample_listが配列
print(type(sample_list))
<class 'list'>

Pythonで配列を作る方法|宣言・初期化

Pythonoの配列を作る方法をお伝えします。

以下の3通りあるからです。

  • 空の配列を作る
  • 要素入りの配列を作る
  • ほかのデータ型から返還する

空のリストを作る方法2選

空のリストを作るには以下の2通りあります。

  • []
  • listメソッド

どちらでも好きな方をお使いください。

#[]を使う
empty_list = []
print(empty_list)
[]

#listメソッドを使う
empty_list2 = list()
print(empty_list2)
[]

要素入りのリストを作る方法

要素入りのメソッドを使うには、以下のとおり。

full_list = [1,2,3]
print(full_list)
[1, 2, 3]

ほかのデータ型から変換する方法

ほかのデータ型を活用して配列を作る方法は以下の2つ。

  • listメソッド
  • splitメソッド

listメソッド

listメソッドを使うと以下のとおり。

#文字列をひとつずつリストの要素にする
>>> sample_str = "サンプル文字列"
>>> list(sample_str)
['サ', 'ン', 'プ', 'ル', '文', '字', '列']

#タプルを配列にする
>>> sample_tuple = ("a","b","c")
>>> list(sample_tuple)
['a', 'b', 'c']

#辞書を配列にする
>>> sample_dict = {"age":38,"name":"裕"}
>>> list(sample_dict)
['age', 'name']

#辞書の値を配列にしたいとき
>>> list(sample_dict.values()) #辞書型のvaluesメソッドを使う
[38, '裕']

splitメソッド

splitメソッドを使うと、任意の場所で文字列を分けられます。

#一語として、配列化する
>>> sample_str.split()
['サンプル文字列']

#「ル」で区切る
>>> sample_str.split("ル")
['サンプ', '文字列']

Pythonの配列操作でできること一覧

以下に当記事でご紹介しているPythonの配列(list)でできることを一覧化しました。

具体例などはリンクをたどって、説明している見出しへ飛んでください。

できることメソッド・演算子等概要
要素の追加append最後尾に追加
要素の追加insert位置を指定して追加
要素の削除del位置を指定して削除
要素の削除remove値を指定して削除
要素の削除pop値を取り出しながら削除
要素の削除clear要素をすべて削除
要素同士の結合extendひとつめのリストに2つめのリストを追加
要素同士の結合+=演算子ひとつめのリストに2つめのリストを追加
要素同士の結合+演算子結合された新たなリストを作成
要素の検索inあるかどうかを調べる
要素の検索indexオフセットを調べる
要素の検索count数を数える
要素の並び替えsort順番に並び替える
要素の並び替えreverse逆順に並び替える
要素の並び替えsorted並び替えた新しいリストを作る
最大値を求めるmax最大値を求める
最小値を求めるmin最小値を求める
要素を取り出すオフセットひとつずつ取り出す
要素を取り出すスライス複数取り出す
要素の書き換えオフセット位置を指定して書き換え
要素の書き換えfor文一括もしくは条件付きで書き換える
要素の書き換え内包表記一括もしくは条件付きで書き換える
ほかの要素へ変換join要素同士を繋げて文字列に変換する
ほかの要素へ変換tupleリストをタプルに変換する

【Pythonの配列操作】要素を追加する

要素を追加する主な方法は2つ。

  • append
  • insert

ただしメソッドを使う以外の追加方法は、以下でも詳しくご説明しています。

append:最後尾に追加

リストの末尾へ追加する方法です

リスト.append(追加したい要素)

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_list.append("Swift")
print(lang_list)
['Python', 'JavaScript', 'Go', 'PHP', 'Swift']

insert:追加位置を指定

リストの末尾へ追加する方法です

リスト.append(追加したい要素)

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_list.insert(1, "html")
print(lang_list)
['Python', 'html', 'JavaScript', 'Go', 'PHP']

【Pythonの配列操作】要素を削除する

要素を削除する方法は主に4つ。

  • del
  • remove
  • pop
  • clear

del:オフセットを指定

オフセットを指定する方法です

del リスト[オフセット]

lang_list = ["Python", "JavaScript", "Go", "PHP"]
del lang_list[-1]
print(lang_list)
['Python', 'JavaScript', 'Go']

remove:値を直接指定

値を指定し削除する方法です

リスト.remove(削除したい値)

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_list.remove("Go")
print(lang_list)
['Python', 'JavaScript', 'PHP']

pop:要素を取り出しながら削除

オフセット指定した要素を削除しつつ、取り出します

リスト.pop(オフセット)

lang_list = ["Python", "JavaScript", "Go", "PHP"]
deleted = lang_list.pop(-1)
print(deleted)
'PHP'
print(lang_list)
['Python', 'JavaScript', 'Go']

clear:すべて消去

clearメソッドはすべて消去します。

リスト.clear()

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_list.clear()
print(lang_list)
[]

【Pythonの配列操作】配列同士を結合する

配列同士を結合する方法は主に以下の3つです。

  • extend
  • +演算子
  • +=演算子

extend:ひとつめのリストに2つめのリストを追加

リスト1.extend(リスト2)

list1 = ["programming", "blog"]
list2 = ["sales", "reading", "studying"]
list1.extend(list2)
print(list1)
['programming', 'blog', 'sales', 'reading', 'studying']

+=演算子:ひとつめのリストに2つめのリストを追加

リスト1 += リスト2

list1 = ["programming", "blog"]
list2 = ["sales", "reading", "studying"]
list1 += list2
print(list1)
['list', 'tuple', 'dictionary', 'sales', 'reading', 'studying']

+演算子:結合された新たなリストを作成

リスト1 + リスト2

list1 = ["programming", "blog"]
list2 = ["sales", "reading", "studying"]
list3 = list1 + list2
print(list3)
['programming', 'blog', 'sales', 'reading', 'studying']

【Pythonの配列操作】要素の検索をする

要素を検索したり、調べたりするには以下の3つが使えます。

  • in演算子
  • index
  • count

in演算子:あるかどうかを調べる

in演算子で調べると、ある場合はTrue、ない場合はFalseが返ります。

調べたい要素 in リスト

>>> lang_list = ["Python", "JavaScript", "Go", "PHP"]
>>> "Python" in lang_list
True

indexメソッド:オフセットを調べる

indexを使うと、要素のオフセット(位置)が確認できます。

リスト.index(要素)

>>> lang_list = ["Python", "JavaScript", "Go", "PHP"]
>>> lang_list.index("Go")
2

countメソッド:数を数える

countでは、調べたい要素がいくつ入っているかを数えます。

リスト.count(調べたい要素)

>>> random_nums = [1,3,5,2,1,4,2,3,2,1,5,2]
>>> random_nums.count(1)
3

【Pythonの配列操作】要素を並び替える

要素を並び替える方法は2とおりです。

  • sort
  • reverse
  • sorted

sortメソッド:順番に並び替える

昇順に並び替えます。

リスト.sort()

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

reverseメソッド:逆順に並び替える

逆順位並び替えます。

リスト.sort()

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

sortedメソッド:並び替えた新しいリストを作る

sortedメソッドでは、新しいメソッドが作られます。

sorted(リスト)

random_nums = [1,3,5,2,1,4,2,3,2,1,5,2]
new_list = sorted(random_nums)
print(new_list)
[1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5]

【Pythonの配列操作】最大・最小値を求める

最大・最小値をそれぞれ求められます。

  • max
  • min

max関数:最大値を求める

max(リスト)

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

min関数:最小値を求める

min(リスト)

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

【Pythonの配列操作】要素を取り出す

要素を取り出す方法はふたつ。

  • オフセット
  • スライス

オフセット:ひとつ取り出す

リスト[オフセット]

lang_list = ["Python", "JavaScript", "Go", "PHP"]
print(lang_list[0])
'Python'

オフセットとは、リスト内での左からの距離(要素の順番)を表します

「距離」なので、一番左側が「0」になります!

スライス:複数取り出す

オフセットを応用して、まとめてリストから取り出します

リスト[スタート位置:終わり位置:何個置きに]

lang_list = ["Python", "JavaScript", "Go", "PHP"]
print(lang_list[2:4])
['Go', 'PHP']

#最初のオフセットを指定しない(0になります)
print(lang_list[:4]) 
['Python', 'JavaScript', 'Go', 'PHP']

#2つ置きに要素を取り出します
print(lang_list[::2])
['Python', 'Go']

【Pythonの配列操作】要素を書き換える

要素を書き換える方法は以下の3つがあります。

  • オフセット
  • for文とenumerate
  • 内包表記

オフセット:ひとつだけ書き換える

リスト[オフセット] = 新しい値

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_list[-1] = "C++"
print(lang_list)
['Python', 'JavaScript', "Go", 'C++']

for文とenumerate:一括もしくは条件付きで書き換える

for文で一括で入れ替えたり、条件付きで書き換えられます。

num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for index, num in enumerate(num_list):
    if num%2==0:
        num_list[index] = "偶数"
print(num_list)
['偶数', 1, '偶数', 3, '偶数', 5, '偶数', 7, '偶数', 9]

内包表記:一括もしくは条件付きで書き換える

内包表記でも条件付きや一括で入れ替えが可能です。

num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
new_list = [i**2 for i in num_list if i%2==1]
print(new_list)
[1, 9, 25, 49, 81]
#奇数だけ取り出して、2乗

【Pythonの配列操作】ほかの要素へ変換する

joinメソッド:要素同士を繋げて文字列に変換する

(要素同士をつなげる文字).join(リスト)

lang_list = ["Python", "JavaScript", "Go", "PHP"]
lang_str = (":").join(lang_list)
print(lang_str)
'Python:JavaScript:Go:PHP'

tupleメソッド:リストをタプルに変換する

lang_list = ["Python", "JavaScript", "Go", "PHP"]
print(tuple(lang_list))
('Python', 'JavaScript', 'Go', 'PHP')

まとめ:Pythonの配列でできることはたくさんある

当記事でご紹介した方法は以下のとおり。

できることメソッド・演算子等概要
要素の追加append最後尾に追加
要素の追加insert位置を指定して追加
要素の削除del位置を指定して削除
要素の削除remove値を指定して削除
要素の削除pop値を取り出しながら削除
要素の削除clear要素をすべて削除
要素同士の結合extendひとつめのリストに2つめのリストを追加
要素同士の結合+=演算子ひとつめのリストに2つめのリストを追加
要素同士の結合+演算子結合された新たなリストを作成
要素の検索inあるかどうかを調べる
要素の検索indexオフセットを調べる
要素の検索count数を数える
要素の並び替えsort順番に並び替える
要素の並び替えreverse逆順に並び替える
要素の並び替えsorted並び替えた新しいリストを作る
最大値を求めるmax最大値を求める
最小値を求めるmin最小値を求める
要素を取り出すオフセットひとつずつ取り出す
要素を取り出すスライス複数取り出す
要素の書き換えオフセット位置を指定して書き換え
要素の書き換えfor文一括もしくは条件付きで書き換える
要素の書き換え内包表記一括もしくは条件付きで書き換える
ほかの要素へ変換join要素同士を繋げて文字列に変換する
ほかの要素へ変換tupleリストをタプルに変換する

Pythonの配列ではいろいろなことができます。

わからなくなったらいつでも当記事に戻ってきてください。

✔当ブログは以下のような方に向けて書かれています

「Djangoでのアプリ開発を学びたい!」

「Djangoで開発したアプリをWebで公開するにはどうするの?」

✔当ブログ掲載の記事

  • Djangoで作る日報アプリ開発
  • WebアプリをWeb上に公開する方法
  • Webアプリ開発に必要なそのほかの情報
【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!

ITCブログにご協力いただける方は、以下もご検討いただけると嬉しいです。

ITCへ投げ銭をする

タイトルとURLをコピーしました