(番外編)Python Coding Reference — 1.リスト —

データ初期化

lista = [[1, 'a', 'あ'], [2, 'b', 'い']]

型の確認

type(lista)
#==> <class 'list'>

サイズの確認

len(lista)
#==> 2

※ 表示される結果は一番外側の要素。2×3とは出力されない。
 3を知りたい場合はlen(lista[0])

※ shape(lista) ## listにshapeはない(numpyにある)。
==> NameError: name 'shape’ is not defined

データ追加

行追加1(insert) ※3行目に行([3, 'c’, 'う’])を追加

lista.insert(2, [3, 'c','う'])
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う']]
※ INDEXは0開始なので、3行目は"2"を指定

行追加2(append) ※最終行に([4, 'd’, 'え’])を追加

lista.append([4, 'd','え'])
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え']]

行追加3(Slice) ※5行目に([5, 'e’, 'お’])を追加

lista[4:1] = [[5, 'e', 'お']]  # 2つ目の引数はなんでもいい?
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え'], [5, 'e', 'お']]

列追加(extend/append/insert)

1行目の末尾に列追加('ZZZ’)

lista[0].extend(['ZZZ'])
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え'], [5, 'e', 'お']]

4行目の末尾に列追加('XXXX’)

lista[3].append('XXXX')
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'e', 'お']]

5行目の2列目に値追加('yy’)

lista[4].insert(1, 'yy')
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e', 'お']]

データ削除(del)

削除(del) 要素番号を指定して削除

特定の要素を削除1 ※前章最後で追加した5行目2つめの要素値 “yy" を削除

del lista[4][1]
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う', 'XXXX'], [4, 'd', 'え', 'XXXX'], [5, 'XXXX', 'e', 'お']]
※ INDEXは0開始なので、5行目は"4"、2つ目は"1"を指定

特定の要素を削除2 ※5行目の2つ目~3つ目の値 “XXXX","e" を削除

del lista[4][1:3]
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う', 'XXXX'], [4, 'd', 'え', 'XXXX'], [5, 'お']]

指定行を削除 ※3行目を削除

del lista[2]
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [4, 'd', 'え', 'XXXX'], [5, 'お']]

指定行を削除 ※2行目~3行目を削除

del lista[1:3]
#==> [[1, 'a', 'あ', 'ZZZ'], [5, 'お']]

全ての要素を削除

del lista
#==> NameError: name 'lista' is not defined
※リストごと削除される

データ削除(pop)

初期データ代入

lista = [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e', 'お']]

特定の要素を削除 ※2行目の2つ目(b)の要素を削除

lista[1].pop(1)
#==> 'b'
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e', 'お']]

特定の行を削除 ※2行目を削除

lista.pop(1)
#==> [2, 'い']
#==> [[1, 'a', 'あ', 'ZZZ'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e', 'お']]

最後の行を削除 ※引数を指定しないと最後の要素を削除

lista.pop()
#==> [5, 'yy', 'e', 'お']
#==> [[1, 'a', 'あ', 'ZZZ'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX']]

最後の行を削除 ※マイナスの場合は後ろから。-1は末尾の要素を削除

lista.pop(-1)
#==> [4, 'd', 'え', 'XXXX']
#==> [[1, 'a', 'あ', 'ZZZ'], [3, 'c', 'う']]
※引数は1つのみ。複数指定不可。

データ削除(remove/clear)

初期データ代入

lista = [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e', 'お']]

特定の要素のみを削除 ※remove()で、5行目の「お」を削除

lista[4].remove('お')
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'yy', 'e']]
※あくまでも消したい要素の値そのものを指定する
※行数を指定してもエラー。
lista.remove(5)
#==> ValueError: list.remove(x): x not in list

特定の行を削除 ※行の要素を指定する

lista.remove([5, 'yy', 'e'])
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX']]
※あくまでも消したい要素の値そのものを指定する
lista.remove([4, 'd', 'え', 'XXXX'])
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う']]
※複数のキーを指定することはできない。
lista.remove([[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い']])
#==> ValueError: list.remove(x): x not in list

※補足:指定した要素が複数存在する場合、インデックスの若い方が削除される

clear() ※全要素削除。空のリストが残る

>>> lista.clear()
#==> []

removeも最後の値が削除されたら、空のリストが残る。

>>> listx=[1]
#==> [1]
>>> listx.remove(1)
#==> []

2021-07-05

Posted by tfurukaw