#リスト(配列)の初期化
角かっこ「[]」で囲み、要素をカンマ「,」区切りで並べる
empty_list = []
# 整数配列
int_list = [0, 1, 2]
要素へのアクセス
###インデックスで
mylist = list(range(10))
# 正数は先頭からのインデックス
n = mylist[1]
# 負数は末尾からのインデックス 末尾の要素のインデックスが-1
n = mylist[-2]
# popメソッドで指定したインデックスにある要素をリストから取得して削除
value = mylist.pop() # インデックスを指定しない場合は末尾の要素が削除される
print('popped value:', value) # popped value: 9
print('mylist:', mylist) # mylist: [0, 1, 2, 3, 4, 5, 6, 7, 8]
スライスで
mylist = list(range(10))
# 0~4番目の5要素を取り出す
s = mylist[0:5]
print(s) # [0, 1, 2, 3, 4]
# 全要素を取り出す
s = mylist[:]
print(s) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 5番目以降の全要素を取り出す
s = mylist[5:]
print(s) # [5, 6, 7, 8, 9]
# 0~4番目の5要素を取り出す
s = mylist[:5]
print(s) # [0, 1, 2, 3, 4]
# 0、2、4、6、8番目の要素を取り出す
s = mylist[0:10:2]
s = mylist[::2] # 同上
print(s) # [0, 2, 4, 6, 8]
リストの結合
###+演算子で
+演算子では新しいリストが作成される
tmp = mylist + [5, 6]
print(tmp) # [0, 1, 2, 3, 4, 5, 6]
print(mylist) # [0, 1, 2, 3, 4]
# リストはリスト以外と結合できない
mylist = mylist + 5 # TypeError
mylist = mylist + (5, 6)
###+=演算子で
+=演算(累算代入)では元のリストが変更される
mylist += [5]
print(mylist) # [0, 1, 2, 3, 4, 5]
リストへ要素を追加する
mylist = list(range(5))
# リストの末尾に要素を追加
mylist.append(5)
print(mylist) # [0, 1, 2, 3, 4, 5]
# appendメソッドの引数は1つだけ
mylist.append(6, 7) # TypeError
# リストの末尾に単一の要素として「リスト」を追加
mylist.append([6, 7])
print(mylist) # [0, 1, 2, 3, 4, 5, [6, 7]]
# リストの末尾に反復可能オブジェクトの個々の要素を追加
mylist.extend([8, 9])
print(mylist) # [0, 1, 2, 3, 4, 5, [6, 7], 8, 9]
# TypeError:extendメソッドには反復可能オブジェクトのみ渡せる
mylist.extend(10)
mylist.extend({10: 'foo', 11: 'bar'}) # 反復可能オブジェクトなのでOK
print(mylist) # [0, 1, 2, 3, 4, 5, [6, 7], 8, 9, 10, 11]
mylist.insert(1, 0.5) # 指定したインデックスに要素を挿入
print(mylist) # [0, 0.5, 1, 2, 3, 4, 5, [6, 7], 8, 9, 10, 11]
要素の削除
mylist = list(range(10))
# インデックスで
del mylist[4]
# clearで全要素を削除
mylist.clear()
# removeで値を指定
mylist.remove(0)
# 指定した値がリスト中にないと例外となる
mylist.remove(0) # ValueError
#リストから要素を検索する
# 10個の整数値を要素とするリスト
mylist = [2, 5, 11, 15, 1, 3, 18, 3, 19, 8]
# 指定した値が含まれているか
result = 0 in mylist
print(result) # False
# 指定した値が含まれていないか
result = 0 not in mylist
print(result) # True
# 指定した値が何個含まれているか
cnt = mylist.count(3)
print(cnt) # 2
# 指定した値がどのインデックスにあるかを検索
idx = mylist.index(3)
print(idx) # 5
# 検索範囲を指定
idx = mylist.index(3, 6, len(mylist)) # index(検索値, 開始index, 終了index)
print(idx) # 7
# 存在しない値を指定
idx = mylist.index(100) # ValueError
# 複数のリストの中で最大のリストを取得
max_value = max([0, 1], [4, 5], [2, 3])
print(max_value) # [4, 5]