1-1. list-1.基本操作
1. リスト
初期設定
lista = [[1, 'a', 'あ'], [2, 'b', 'い']]
型
type(lista)
#==> <class 'list'>
サイズ
len(lista)
#==> 2
※ 表示される結果は一番外側の要素。2x3とは出力されない。3を知りたい場合はlen(lista[0]) ※ shape(lista) ## サイズ --> listにshapeはない。 ==> NameError: name 'shape' is not defined_
データ追加
行追加1(insert) ※3行目に行を追加
lista.insert(2, [3, 'c','う'])
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う']]
※ INDEXは0開始なので、3行目は"2"を指定
行追加2(append) ※最終行に追加
lista.append([4, 'd','え'])
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え']]
行追加3(Slice) ※5行目に追加
lista[4:1] = [[5, 'e', 'お']] # 2つ目の引数はなんでもいい?
#==> [[1, 'a', 'あ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え'], [5, 'e', 'お']]
列追加
1行目の末尾に列追加
lista[0].extend(['ZZZ'])
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え'], [5, 'e', 'お']]
4行目の末尾に列追加
lista[3].append('XXXX')
#==> [[1, 'a', 'あ', 'ZZZ'], [2, 'b', 'い'], [3, 'c', 'う'], [4, 'd', 'え', 'XXXX'], [5, 'e', 'お']]
5行目の2列目に値追加
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)
※clear() を使用。空のリストが残る
>>> lista.clear()
#==> []
※ ちなみにremoveも最後の値が削除されたら、空のリストが残る。
>>> listx=[1]
#==> [1]
>>> listx.remove(1)
#==> []