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

Pythonのリストの仕組みと使い方のサンプルです。(確認環境:Python 3)

仕組み リストとは
作成 リストを作成 / リストに複数のデータ型をセット / 文字列をリストにする
取得 in / index / スライス / len / リストの要素で計算 / max,min,sum /
リストの値を変数にセット / join / リストを比較
追加/変更 append / insert / 要素の値を変更
削除 del / remove / pop
並び替え reverse / sort / sorted
連結/コピー +演算子 / copy
その他 リストの中にリスト / 入れ子の構造のリスト

リストとは

a = [ 値1 , 値2 , 値3 ]

上記は複数の値を変数aに代入しています。
この変数aはリストとして複数の値を持ちます。

リストの変数の図

  • 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行目は、リテラルで配列を作成しています。リテラルとはコード中に記述された値です。
9行目は、インデックスに-1を指定して最後の要素を表示しています。

リストに複数のデータ型をセット

リストに複数のデータ型をセットできます。

# coding: utf-8

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

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

 

文字列をリストにする

listメソッドは、文字列をリストにします。

# coding: utf-8

a = "赤黄青"
b = list(a)

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

 


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

要素 in リスト
# coding: utf-8

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

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

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

 

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

 

スライス 一部の要素を取り出す

リスト名[ 最初の要素のインデックス:取り出す最後の要素のインデックス+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] ステップを使用

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

len 要素数を取得

# coding: utf-8

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

print(len(c1)) # 3

 

リストの要素で計算

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

# 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 割り算

 

max,min,sum 要素の値の最大値、最小値、合計

# coding: utf-8

a = [2,8,3]

print (max(a)) # 8 最大値
print (min(a)) # 2 最小値
print (sum(a)) # 13 合計

 

リストの値を変数にセット

リストの値を各変数にセットできます。

# coding: utf-8

a = ["赤","黄","青"]
b,c,d = a

print (b) # ['赤']
print (c) # ['黄']
print (d) # ['青']

 

join リストの値の文字を結合する

# coding: utf-8

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

print(",".join(a)) # 赤,黄,青
print("".join(a)) # 赤黄青

6行目は、引数が空文字です。その場合リストの値がつめて結合されます。

リストを比較

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

# coding: utf-8

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

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

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

 


append 末尾に要素を追加

# coding: utf-8

a = ["赤","黄","青"]
a.append("緑")

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

 

insert 指定の位置に要素を追加

1つめの引数の位置に2つめの引数の値を追加します。

# coding: utf-8

a = ["赤","黄","青"]
a.insert(2,"オレンジ")

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

 

要素の値を変更

インデックスを指定して要素の値を変更します。

# coding: utf-8

a = ["赤","黄","青"]
a[1] = "オレンジ"

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

 


del インデックスを指定して要素を削除

# coding: utf-8

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

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

 

remove 値を指定して要素を削除

# coding: utf-8

a = ["赤","黄","青"]
a.remove ("黄")

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

 

pop インデックスを指定して要素を削除

popメソッドは削除した値を返します。

# coding: utf-8

a = ["赤","黄","青"]
b = a.pop(1)

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

 


reverse 逆順に並べる

# coding: utf-8

a = ["赤","黄","青"]
a.reverse()

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

 

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

# coding: utf-8

a = [300, 20, 500]
a.sort()

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

 

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

sortとの違いは新しいリストを返します。

# coding: utf-8

a = [300, 20, 500]
b = sorted(a)

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

6行目は、新しい並び替えられたリストです。
7行目は、元のリストです。


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

# coding: utf-8

a = [2,3]
b = [8,9]
c = ["a","b"]

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

 

copy リストをコピーする

# coding: utf-8

a = ["赤","黄","青"]
b = a.copy()

b[1] = "オレンジ"

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

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


リストの中にリスト

# 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]) # 灰

 

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

# 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]) #青

関連の記事

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

△上に戻る