Python リストの仕組みと使い方のサンプル(list)

Pythonのリストの仕組みと使い方のサンプルです。

確認環境
・Python 3.7.2

目次

リストとは

変数 = [ 値1 , 値2 , 値3 , ... ]

  • 1つの変数で複数の値を保持できます。
    →各項目を要素(element)といいます。
  • 要素の順序をインデックス(添字)で管理します。上記図では[0]、[1]、[2]、[3]がインデックスです。
  • インデックスは0から始まります。
  • それぞれの値はインデックスを指定してアクセスします。
    →例:変数[0]
  • インデックスを-1にすると最後の要素が指定されます。
  • 以下はPythonの公式ドキュメントのリストのリンクです。
    https://docs.python.jp/3/tutorial/datastructures.html

リストを作成する

リストを作成するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

print (a) # ['赤', '黄', '青']

print (a[0]) #赤
print (a[1]) #黄
print (a[2]) #青

print (a[-1]) #青

3行目は、リストを作成しています。
5行目は、変数の値を表示しています。
7~9行目は、インデックスを指定してそれぞれの値(赤、黄、青)を表示しています。
11行目は、インデックスに-1を指定して最後の要素を表示しています。

リストを作成する(複数のデータ型をセット)

リストを作成するサンプルです。
リストに複数のデータ型をセットします。

# coding: utf-8

a = ["A",1,True];

print (a[0]) #A
print (a[1]) #1
print (a[2]) #True

3行目は、リストの値に文字列型、数値型、論理型を指定しています。Pythonのリストでは可能です。

要素の値を変更する

要素の値を変更するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

a[1] = "オレンジ"

print (a) # ['赤', 'オレンジ', '青']

5行目は、インデックスを指定して要素の値を変更しています。

要素を削除する (del)

要素を削除するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

del a[1]

print (a) # ['赤', '青']

5行目は、del文でインデックスを指定して要素を削除しています。

要素を削除する 値を指定(remove)

list.remove(x)

要素を削除するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

a.remove ("黄")

print (a) # ['赤', '青']

5行目は、removeメソッドで値を指定して要素を削除しています。

要素を削除する インデックスを指定(pop)

list.pop([i])

要素を削除するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

b = a.pop(1)

print (a) # ['赤','青']

print (b) # 黄

5行目は、popメソッドでインデックスを指定して要素を削除しています。
またpopメソッドは削除した値を返します。9行目は削除した値が表示されます。

末尾に要素を追加する (append)

list.append(x)

末尾に要素を追加するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

a.append("緑")

print (a) # ['赤', '黄', '青', '緑']

5行目はappendメソッドでリストの末尾に要素を追加しています。

特定の要素が存在するか確認する(in)

リストに特定の要素が存在するか確認するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

b = "黄"

c = "オレンジ"

if b in a:
	print("含まれる1") #表示される

if c in a:
	print("含まれる2")
else:
	print("含まれない") #表示される

9行目は、黄という値が3行目のリストに含まれているかin演算子を使用して比較しています。含まれているので文字が表示されます。
12行目は、オレンジという値が3行目のリストに含まれているかin演算子を使用して比較しています。含まれていないので「含まれない」という文字が表示されます。

特定の要素の位置を確認する (index)

list.index(x[, start[, end]])

特定の要素の位置を確認するサンプルです。

# coding: utf-8

a = ["A","B","C"]

print (a.index("A")) # 0
print (a.index("B")) # 1
print (a.index("C")) # 2

5~7行目は、indexメソッドで指定の要素が何番目にあるかを返します。

逆順に並べる (reverse)

list.reverse()

逆順に並べるサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

a.reverse()

print (a) # ['青', '黄', '赤']

5行目はreverseメソッドで逆順に並べています。

数値を小さい順に並べる (sort)

list.sort(key=None, reverse=False)

数値を小さい順に並べるサンプルです。

# coding: utf-8

a = [300, 20, 500]

a.sort()

print (a) # [20, 300, 500]

5行目はsortメソッドで数値を小さい順に並び変えています。

数値を小さい順に並べる (sorted)

数値を小さい順に並べるサンプルです。sortとの違いは新しいリストを返します。

# coding: utf-8

a = [300, 20, 500]

b = sorted(a)

print (b) # [20, 300, 500]

print (a) # [300, 20, 500]

5行目は、sortedメソッドでリストの数値を小さい順に並べ、新しいリストを返しています。
7行目は、新しい並び替えられたリストです。
9行目は、元のリストです。

入れ子の構造のリストを作成する

入れ子の構造のリストを作成するサンプルです。

# coding: utf-8

a = [
"色の種類",
["赤","黄","青"],
["緑","白","黒"]
]

print (a[0]) #色の種類
print (a[1]) #['赤', '黄', '青']
print (a[2]) #['緑', '白', '黒']

print (a[1][0]) #赤
print (a[1][1]) #黄
print (a[1][2]) #青

3~7行目は、入れ子の構造のリストを作成しています。
13~15行目は、インデックスを2つ使用してリストの値を参照しています。

リストの要素で計算する

リストの要素で計算するサンプルです。

# coding: utf-8

a = [2,3]

print (a[0] + a[1]) #5 足し算

print (a[0] - a[1]) #-1 引き算

print (a[0] * a[1]) #6 掛け算

print (a[0] / a[1]) #0.6666666666666666 割り算

インデックスで指定して計算できます。

リストを連結する(+演算子)

リストを連結するサンプルです。

# coding: utf-8

a = [2,3]

b = [8,9]

c = ["a","b"]

print (a + b + c) #[2, 3, 8, 9, 'a', 'b']

9行目は、+演算子でa,b,cのリストを連結しています。

一部の要素を取り出す (スライス/ステップ)

リスト名[ 最初の要素のインデックス:取り出す最後の要素のインデックス+1]
リスト名[ 最初の要素のインデックス:取り出す最後の要素のインデックス+1:ステップ]

リストの一部の要素を取り出すことができます。スライスといいます。
指定する最初のインデックスと最後のインデックスをコロン(:)で区切り全体を角括弧でくくります。

一部の要素を取り出すサンプルです。

# coding: utf-8

a = [1,2,3,4,5,6,7]

print (a[0:2]) #[1, 2] 

print (a[1:2]) #[2]

print (a[2:5]) #[3, 4, 5]

print (a[:2]) #[1, 2] 左側の値を省略

print (a[2:]) #[3, 4, 5, 6, 7] 右側の値を省略

print (a[:-1]) #[1, 2, 3, 4, 5, 6] マイナスの値

print (a[::2]) #[1, 3, 5, 7] ステップを使用

11行目は、コロン(:)の左側を省略した場合、最初の要素から取り出します。
13行目は、コロン(:)の右側を省略した場合、最後の要素まで取り出します。
15行目は、コロン(:)の右側にマイナスの値を指定すると最後尾から数えて取り出します。
17行目は、コロン(:)の右側にもうひとつコロン(:)と値を指定するとリストの要素を2つおき、3つおき取り出すというような指定ができます。ステップといいます。

要素の値の最大値、最小値、合計、要素の長さ (max,min,sum,len)

要素の値の最大値、最小値、合計、要素の長さを組み込み関数で取得できます。

# coding: utf-8

a = [2,8,3]

print (max(a)) # 8 最大値

print (min(a)) # 2 最小値

print (sum(a)) # 13 合計

print (len(a)) # 3 要素の長さ

リストを比較する

リストを比較するサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

b = ["赤","黄","青"]

c = ["赤","オレンジ","青"]

if a == b:
	print("同じ") #表示される

if a != c:
	print("異なる") #表示される

9行目は、==でリストが同じか比較しています。
12行目は、!=でリストが同じでないこと(異なっていればtrueになる)を比較しています。

リストの中にリストがある

リストの中にリストがあるサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

b = ["黒","白","灰"]

c = [a,b]

print (c[0]) # ['赤', '黄', '青']
print (c[1]) # ['黒', '白', '灰']

print (c[0][0]) # 赤
print (c[0][1]) # 黄
print (c[0][2]) # 青
print (c[1][0]) # 黒
print (c[1][1]) # 白
print (c[1][2]) # 灰

3,5行目は、リストです。
7行目は、上記リストをリストにしています。

文字列からリストにする(list)

文字列からリストにするサンプルです。

# coding: utf-8

a = "赤黄青"

b = list(a)

print (b) # ['赤', '黄', '青']

3行目は文字列です。
5行目はlistメソッドで文字列をリストにしています。

リストをコピーする(copy)

リストをコピーするサンプルです。

# coding: utf-8

a = ["赤","黄","青"]

b = a.copy()

b[1] = "オレンジ"

print (a) # ['赤', '黄', '青']

print (b) # ['赤', 'オレンジ', '青']

3行目は、リストです。
5行目は、copyでリストをコピーしています。
7行目は、コピー先のリストの値を変更しています。
9行目は、コピー元のリストです。値は変更されていません。
11行目は、コピー先のリストです。値は変更されています。

関連の記事

Python タプルの仕組みと使い方のサンプル(tuple)
Python ディクショナリの仕組みと使い方(dictionary)
Python セットの仕組みと使い方のサンプル(set)

△上に戻る