Python リスト
リストは、Python にあるデータを格納するための 4 つのデータ型のうちの 1 つです。
# List: 角括弧で囲まれた順序付けられたアイテムのコレクション
['John', 'Peter', 'Debora', 'Charles']
インデックスを使用した値の取得
# インデックスを使用してリスト要素にアクセス (0 から始まる、最初の要素はインデックス 0)
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] # 最初の要素を返します:'table'
'table'
furniture[1]
'chair'
furniture[2]
'rack'
furniture[3]
'shelf'
負のインデックス
# 負のインデックス:リストの末尾から要素にアクセス
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[-1] # 最後の要素を返します:'shelf'
'shelf'
furniture[-3]
'chair'
f'The {furniture[-1]} is bigger than the {furniture[-3]}'
'The shelf is bigger than the chair'
ログインしてこのクイズに回答し、学習の進捗を追跡できます
furniture = ['table', 'chair', 'rack', 'shelf'] の場合、furniture[-1] は何を返しますか?'table''shelf'['shelf']IndexErrorスライスを使用したサブリストの取得
# スライス:[start:end] 構文を使用してサブリストを取得します (end は排他的)
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0:4] # インデックス 0 から 3 までの要素を返します (4 は含まない)
['table', 'chair', 'rack', 'shelf']
furniture[1:3]
['chair', 'rack']
furniture[0:-1]
['table', 'chair', 'rack']
# 先頭からのスライス:start インデックスを省略 (デフォルトは 0)
furniture[:2] # 最初の 2 つの要素を返します
['table', 'chair']
# 末尾までのスライス:end インデックスを省略 (デフォルトはリストの末尾)
furniture[1:] # インデックス 1 から末尾まですべての要素を返します
['chair', 'rack', 'shelf']
furniture[:]
['table', 'chair', 'rack', 'shelf']
リスト全体をスライスするとコピーが作成されます:
# スライスはコピーを作成します:[:] はリストのシャローコピーを作成します
spam = ['cat', 'bat', 'rat', 'elephant']
spam2 = spam[:] # 参照ではなくコピーを作成
spam2
['cat', 'bat', 'rat', 'elephant']
spam.append('dog')
spam
['cat', 'bat', 'rat', 'elephant', 'dog']
spam2
['cat', 'bat', 'rat', 'elephant']
ログインしてこのクイズに回答し、学習の進捗を追跡できます
spam がリストである場合、spam[:] は何を作成しますか?len() を使用したリストの長さの取得
# len() はリスト内のアイテムの数を返します
furniture = ['table', 'chair', 'rack', 'shelf']
len(furniture) # 4 を返します
4
インデックスを使用した値の変更
# インデックスに新しい値を代入してリスト要素を変更します
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] = 'desk' # 最初の要素を置き換えます
furniture
['desk', 'chair', 'rack', 'shelf']
furniture[2] = furniture[1]
furniture
['desk', 'chair', 'chair', 'shelf']
furniture[-1] = 'bed'
furniture
['desk', 'chair', 'chair', 'bed']
連結と複製
# リストの連結:+ 演算子を使用して 2 つのリストを結合します
[1, 2, 3] + ['A', 'B', 'C'] # [1, 2, 3, 'A', 'B', 'C'] を返します
[1, 2, 3, 'A', 'B', 'C']
# リストの複製:* 演算子を使用してリストを複数回繰り返します
['X', 'Y', 'Z'] * 3 # ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z'] を返します
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
my_list = [1, 2, 3]
my_list = my_list + ['A', 'B', 'C']
my_list
[1, 2, 3, 'A', 'B', 'C']
for ループとリストの使用
# for ループを使用してリスト要素を反復処理します
furniture = ['table', 'chair', 'rack', 'shelf']
for item in furniture: # 各アイテムをループします
print(item)
table
chair
rack
shelf
enumerate() を使用したループでのインデックスの取得
# enumerate() はループ内でインデックスと値の両方を返します
furniture = ['table', 'chair', 'rack', 'shelf']
for index, item in enumerate(furniture): # インデックスとアイテムを同時に取得
print(f'index: {index} - item: {item}')
index: 0 - item: table
index: 1 - item: chair
index: 2 - item: rack
index: 3 - item: shelf
zip() を使用した複数のリストのループ
# zip() は複数のリストを要素ごとに結合してループします
furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]
for item, amount in zip(furniture, price): # 両方のリストから要素をペアにします
print(f'The {item} costs ${amount}')
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40
in および not in 演算子
# in 演算子:アイテムがリスト内に存在するかどうかを確認します
'rack' in ['table', 'chair', 'rack', 'shelf'] # True を返します
True
'bed' in ['table', 'chair', 'rack', 'shelf']
False
furniture = ['table', 'chair', 'rack', 'shelf']
'bed' not in furniture
True
'rack' not in furniture
False
多重代入のトリック
多重代入のトリックは、1 行のコードでリスト内の複数の変数に値を代入するためのショートカットです。次のように行う代わりに:
furniture = ['table', 'chair', 'rack', 'shelf']
table = furniture[0]
chair = furniture[1]
rack = furniture[2]
shelf = furniture[3]
次のコードを記述できます:
furniture = ['table', 'chair', 'rack', 'shelf']
table, chair, rack, shelf = furniture
table
'table'
chair
'chair'
rack
'rack'
shelf
'shelf'
多重代入のトリックは、2 つの変数の値を交換するためにも使用できます:
a, b = 'table', 'chair'
a, b = b, a
print(a)
chair
print(b)
table
index メソッド
index メソッドを使用すると、値の名前を渡すことでその値のインデックスを見つけることができます:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.index('chair')
1
値の追加
append()
append はリストの末尾に要素を追加します:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.append('bed')
furniture
['table', 'chair', 'rack', 'shelf', 'bed']
ログインしてこのクイズに回答し、学習の進捗を追跡できます
append() メソッドはリストに対して何を行いますか?insert()
insert は指定された位置にリストに要素を追加します:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.insert(1, 'bed')
furniture
['table', 'bed', 'chair', 'rack', 'shelf']
値の削除
del
del はインデックスを使用してアイテムを削除します:
furniture = ['table', 'chair', 'rack', 'shelf']
del furniture[2]
furniture
['table', 'chair', 'shelf']
del furniture[2]
furniture
['table', 'chair']
remove()
remove は実際の値を使用してアイテムを削除します:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.remove('chair')
furniture
['table', 'rack', 'shelf']
繰り返し出現するアイテムの削除
値がリスト内に複数回出現する場合、その値の最初の出現箇所のみが削除されます。
pop()
デフォルトでは、pop はリストの最後のアイテムを削除して返します。オプションのパラメーターとして要素のインデックスを渡すこともできます:
animals = ['cat', 'bat', 'rat', 'elephant']
animals.pop()
'elephant'
animals
['cat', 'bat', 'rat']
animals.pop(0)
'cat'
animals
['bat', 'rat']
ログインしてこのクイズに回答し、学習の進捗を追跡できます
pop() を呼び出すと、何が起こりますか?sort() を使用した値のソート
numbers = [2, 5, 3.14, 1, -7]
numbers.sort()
numbers
[-7, 1, 2, 3.14, 5]
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.sort()
furniture
['chair', 'rack', 'shelf', 'table']
reverse キーワード引数に True を渡すことで、値を逆順にソートすることもできます:
furniture.sort(reverse=True)
furniture
['table', 'shelf', 'rack', 'chair']
通常のアルファベット順に値をソートする必要がある場合は、sort() メソッド呼び出しで key キーワード引数に str.lower を渡します:
letters = ['a', 'z', 'A', 'Z']
letters.sort(key=str.lower)
letters
['a', 'A', 'z', 'Z']
組み込み関数 sorted を使用すると、新しいリストを返すことができます:
furniture = ['table', 'chair', 'rack', 'shelf']
sorted(furniture)
['chair', 'rack', 'shelf', 'table']
タプル (Tuple) データ型
タプルとリストの主な違いは、タプルがイミュータブル(変更不可能)なオブジェクトであるのに対し、リストはミュータブル(変更可能)であるという点です。これは、リストは変更できますが、タプルは変更できないことを意味します。タプルはリストよりもメモリ効率が良いです。
furniture = ('table', 'chair', 'rack', 'shelf')
furniture[0]
'table'
furniture[1:3]
('chair', 'rack')
len(furniture)
4
タプルがリストと異なる主な点は、文字列と同様にタプルがイミュータブルであることです。
list() および tuple() 間の変換
tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
list(('cat', 'dog', 5))
['cat', 'dog', 5]
list('hello')
['h', 'e', 'l', 'l', 'o']
ログインしてこのクイズに回答し、学習の進捗を追跡できます