Python データ構造 リスト

リスト

基本

宣言

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]

インデックス

l[0] # 先頭(0番目)
l[1] # 1番目
l[-1] # 最後
l[-2] # 最後から2番目
l[100] # 存在しないインデックスはエラーIndexErrorが返る

スライス

l[0:2] # 0番目から1番目
l[2:5] # 2番目から4番目
l[:2] # 0番目から1番目
l[2:] # 2番目から最後まで
l[:] # リスト全体
l[::2] # 1つ飛ばし
l[::-1] # 後ろから逆準で全リスト

関数

len(l) # リスト中のデータ数
type(l) # <class ‘list’> が返る
list(‘abcdefg’) # 1文字ずつ取り出してリストに変換

ネスト

a = [‘a’, ‘b’, ‘c’]
n = [1, 2, 3]
x = [a, n] # [[‘a’, ‘b’, ‘c’], [1, 2, 3]
x[0] # [‘a’, ‘b’, ‘c’]
x[1][2] # 3が返る

データ操作

s = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
s[0] = ‘X’ # [‘X’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
s[2:5] = [‘C’, ‘D’, ‘E’] # [‘a’, ‘b’, ‘C’, ‘D’, ‘E’, ‘f’, ‘g’]
s[2:5] = [] # [‘X’, ‘b’, ‘f’, ‘g’]
s[:] = [] # []

メソッドによる挿入・削除

n = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
n.append(100) # 末尾に100を追加
n.insert(0, 200) # 先頭に200を追加
n.pop() # 末尾の100が取り出されてリストから削除される
n.pop(0) # 先頭の200が取り出されてリストから削除される(引数はインデックス)
del n[0] # 先頭の1が削除される
del n # 変数そのものが削除される

n = [1, 2, 2, 2, 3]
n.remove(2) # 最初に見つけた2を削除(引数は検索する値)

リストの結合

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
x = a + b # aとbを結合
a += b # aにbを結合
a.extend(b) # aが拡張されてbが結合される

さまざまなメソッド

r = [1, 2, 3, 4, 5, 1, 2, 3]
r.index(3) # 指定した要素がどのインデックスにあるかを調べる
r.index(3, 3) # 3番目のインデックスから3を探しインデックス番号を返す
r.count(3) # 指定した要素の数を返す
r.sort() # リストの中身を昇順にソート
r.sort(revers=True) # リストの中身を降順にソート
r.reverse() # リストの中身の順番を反転

s = ‘My name is Sugi.’
to_split = s.split(‘ ‘) # 指定文字列で文章を区切ってリストに格納
x = ‘ ‘.join(to_split) # 指定文字列を使って結合

print(help(list)) # help関数を使うと使用可能なメソッドが表示される

x = [1, 2, 3, 4, 5]
y = x.copy() # 値渡しでコピー(y = xとすると参照渡しになる)
y = x[:] # スライスでもコピーできるがcopy関数の方が明示的

コメント

タイトルとURLをコピーしました