Edited at

python入門(4)~リスト~


リスト


リストとは

複数のデータをまとめて格納できる箱のようなものです.リストを作るには要素を「,」で区切って「[]」で囲みます.また,リストの各要素には添字が振られています.


リストの基本操作


list.py

a = [1, 2, 3]

b = list()
#b = []
c = ['リスト', 10]
print(a[0], a[1], a[2], c[0], c[1])
a[0] = '壱'; a[1] = '弐'; a[2] = '参'
print(a[0], a[1], a[2])


実行結果

1 2 3 リスト 10

壱 弐 参

リストとは他言語の配列に似ているが,それらとは異なる部分も多い.pythonにおけるリストでは一つのリストに複数の型の値を代入することができます.それに伴いリストの要素を変える時も違う型の値を入れることができる.また,空のリストを作るときはlist()もしくは[]を使います.


リストの操作

リストには様々な機能が存在します.


ope

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

length = len(a)
print(length)
judg1 = 'A' in a
judg2 = 'Z' in a
print(judg1, judg2)
b = list('DEF')
print(b[0], b[1], b[2])
c = [a, b]
print(c[0], c[1])


実行結果

3

True False
D E F
['A', 'B', 'C'] ['D', 'E', 'F']

上記のプログラムではまず,二行目でlen()を使いリストの要素数を取得します.次に四、五行目で「A」がリスト「a」含まれているかを調べ「True」または「False」で返します.また,七行目ではlist()を使い文字列などの型をリストに変換しています.九行目ではリストのリストを作っています.


要素の削除と分割


添字を特定して削除する時

上記のような場合はpop()を使います.また,添字の範囲外を指定するとエラーになります.


list2.py

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

print(a[0], a[1], a[2])
p = a.pop(1)
print(a[0], p, a[1])


実行結果

A B C

A B C

list2.pyでは添字の二つ目を削除してpに代入しています.


特定の要素を削除する時

上記の場合はremove()を使います.しかし,同じ値が複数あれば最初に見つかった値を削除します.また,削除したい値がリスト内になければエラーになります.


list3.py

a =['c', 'java', 'python', 'java']

print(a[0], a[1], a[2], a[3])
r = a.remove('java')
print(a[0], r, a[1], a[2])


実行結果

c java python java

c None python java

実行結果を見れば分かりますが,pop()では削除した値を変数に代入できますが,remove()ではそれができずに「None」と出力されます.


delを用いた削除

delを使うと要素のオブジェクト自体がメモリから削除されます.


list4.py

a = ['d', 'e', 'l']

print(a[0], a[1], a[2])
del a[0]
print(a[0], a[1])


実行結果

d e l

e l


変数への分割

リストの各要素を変数に振り分けることもできます.


list5.py

a = ['c', 'java', 'python']

x, y, z = a
print(x, y, z)


実行結果

c java python



要素の追加と連結


要素の追加

要素の追加にはappend()とinsert()という二通りのやり方があり,append()はリストの末尾に要素を追加し,insert()はリストの特定の場所に要素を追加します.


add.py

a = ['い', 'ろ']

a.append('は')
b = ['い', 'は']
b.insert(1, 'ろ')
print(a)
print(b)


実行結果

['い', 'ろ', 'は']

['い', 'ろ', 'は']


リストの連結

リストは+演算子,もしくはextend()によって連結できます.


con.py

list1 = ['a', 'b', 'c']

list2 = ['d', 'e', 'f']
list3 = list1 + list2
print(list3)
list1.extend(list2)
#list1+=list2
print(list1)


実行結果

['a', 'b', 'c', 'd', 'e', 'f']

['a', 'b', 'c', 'd', 'e', 'f']


ソート

ソートとは値の順番を並び替えることです.小さい方から並べることを昇順,大きい方から並べることを降順と言います.


sort()を使う

sort()を使うとリスト自体を昇順に並び替えます.なお,sort()の引数にreverse = Trueを入れると降順に並び替えます.


so.py

a = [4, 34, 2, 86, 15, 127]

a.sort()
print(a)
a.sort(reverse = True)
print(a)


実行結果

[2, 4, 15, 34, 86, 127]

[127, 86, 34, 15, 4, 2]


sorted()を使う

sorted()は元のリストはそのままにして新しいリストに並べ替えた要素を返します.


so2.py

a = [4, 34, 2, 86, 15, 127]

b = sorted(a)
print(a)
print(b)


実行結果

[4, 34, 2, 86, 15, 127]

[2, 4, 15, 34, 86, 127]


最後に

pythonで行える操作はたくさんあるので少しずつ覚えていきましょう.