list
list: 値の重複が可能
mutableなオブジェクト
- list: 値の重複が可能
- 初期化
- listへ型変換 : list()
- 要素の取得
- 要素の挿入 : append(値)
- 要素の結合 : extend(リスト)
- 要素の挿入 : insert(挿入位置, 値)
- 取得と削除 : pop(削除位置)
- 値を指定して削除 : remove(値) / del(インデックス)
- スライス [開始位置:終了位置:ステップ]
- リストの比較 : == / is / is not
- カウンタ付きループ : enumerate(リスト, 開始値)
- 複数のリストをforで扱う : zip
- リスト内包表記 : [式 for in イテラブル]
- リスト内の検索 : in / index()
初期化
a = ["a", "b", "c", "d"] print(a) # ['a', 'b', 'c', 'd']
listへ型変換 : list()
b = list(range(1, 10)) # 組み込み関数:list() print(b) # [1, 2, 3, 4, 5, 6, 7, 8, 9] t = ("aa", "bb", "cc") # タプルをリストへ c = list(t) print(c) # ['aa', 'bb', 'cc']
要素の取得
data = [1, 2 ,3] print(data[0]) # 1
要素の挿入 : append(値)
data = [1, 2 ,3] data.append(4) # 1つの要素を末尾に追加 print(data) # [1, 2, 3, 4]
要素の結合 : extend(リスト)
data = [1, 2 ,3] data = data + [10, 11] # 複数の時 print(data) # [1, 2, 3, 10, 11] data.extend([20, 21]) print(data) # [1, 2, 3, 10, 11, 20, 21] data += [30, 31] print(data) # [1, 2, 3, 10, 11, 20, 21]
要素の挿入 : insert(挿入位置, 値)
data = [1, 2 ,3] data.insert(1, "new") print(data) # [1, 'new', 2, 3]
取得と削除 : pop(削除位置)
data = [1, 2, 3, 4, 5, 6, 7, 8] a = data.pop() # 引数を省略すると末尾を削除 print(data) # [1, 2, 3, 4, 5, 6, 7] print(a) # 8 data.pop(1) print(data) # [1, 3, 4, 5, 6, 7]
値を指定して削除 : remove(値) / del(インデックス)
colors = ["red", "blue", "yellow", "black", "blue"] if "blue" in colors: # inで存在チェックをし、boolを返す colors.remove("blue") # 削除されるのは1つ。全て削除したい場合はループさせる。 print(colors) # ['red', 'yellow', 'black']
スライス [開始位置:終了位置:ステップ]
変数で受け取った場合、copyと同じく値コピーとなる為、ポインタは変わる
foods = ["apple", "banana", "pine", "cherry"] print(foods[1:3]) # 終了位置はマイナス1 # ['banana', 'pine']
リストの比較 : == / is / is not
foods = ["apple", "banana", "pine"] foods2 = ["apple", "banana", "pine"] foods3 = ["apple", "banana", "cherry"] foods4 = foods print(foods == foods2) # =:要素の一致(並び順も) # True print(foods == foods3) # False print(foods is foods2) # is:ポインタの一致 # False print(foods is foods4) # True print(foods is not foods4) # False foods.append("orange") print(foods4) # ['apple', 'banana', 'pine', 'orange'] foods5 = foods4.copy() # copyは値コピー print(foods5 is foods4) # False
カウンタ付きループ : enumerate(リスト, 開始値)
enumerate() : 組み込み関数 names = ["鈴木", "田中", "佐藤", "木村"] for i, name in enumerate(names,1): print(f"{i}: {name}") # 1: 鈴木 # 2: 田中 # 3: 佐藤 # 4: 木村
複数のリストをforで扱う : zip
names = ["鈴木", "田中", "佐藤", "木村"] names2 = ["つとむ", "あい", "ゆい", "あすか"] long_names = list() for name1, name2 in zip(names, names2): long_names.append(name1 + name2) print(long_names) # ['鈴木つとむ', '田中あい', '佐藤ゆい', '木村あすか']
リスト内包表記 : [式 for in イテラブル]
条件付きリスト内包表記 : [式 for in イテラブル if 条件式]
[]の中に for in を書き、イテラブルなオブジェクトから新しいリストを生成する
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers2 = [num**2 for num in numbers if num%2 == 0] # 偶数のみ2乗してリスト print(numbers2) # [4, 16, 36, 64, 100]
リスト内の検索 : in / index()
colors = ["red", "blue", "yellow", "black", "blue"] print("yellow" in colors) # True print(colors.index("black")) # 3