Pythonの配列と操作
配列って、データが並んでること?
そう、その並んでいるデータを便利に使う仕組みダヨ
配列は複数の要素を一つの変数に格納し、順番に格納するデータ構造です。
インデックス(値が何番目に格納されているか)を使用して要素にアクセスできます。
Pythonでは主にリスト(List)とタプル(Tuple)が使用されます。
リストは要素を追加・削除する必要がある場合に適しており、タプルは変更されることが好ましくない場合に適しています。
リスト(List)
リストは可変(変更可能)な配列です。
要素の追加、削除、変更が可能です。
リスト型の配列
リスト型を使用した配列の宣言方法
Pythonのリストは、複数の要素を格納するためのデータ構造です。
リストを宣言するには、角括弧 [] 内に要素をカンマで区切って記述します。
リストの宣言例
my_list = [1, 2, 3, 4, 5]
my_list に 1, 2, 3, 4, 5 を代入
「順番に並んだ箱に、数字が入っているイメージ」デスネ。
my_list = 1⃣2⃣3⃣4⃣5⃣
リスト内の要素へのアクセス方法
リスト内の要素にアクセスするには、リスト名の後に要素のインデックスを指定します。
Pythonのリストは0から始まるため、最初の要素のインデックスは0です。
「並んだ箱に番号が付いているイメージ」デスネ。
my_list=□0□1□2□3□4
first_element = my_list[0] # 最初の要素にアクセス
second_element = my_list[1] # 2番目の要素にアクセス
リストの要素を追加、削除する方法
リストに要素を追加する方法として append() メソッドがあります。
要素を削除するには remove() メソッドを使用できます。
my_list.append(6) # リストに新しい要素を追加
# 1 2 3 4 5 6
my_list.remove(3) # 指定した値を持つ要素を削除
# 1 2 4 5
タプル(Tuple)
タプルは不変(変更不可)な配列です。
一度作成したら要素を変更できません。
タプル型の配列
タプル型を使用した配列の宣言方法
タプルは、リストと同様に複数の要素を格納するデータ構造ですが、不変(イミュータブル)である点が異なります。この不変性の特性はデータの保護に役立ちます。
タプルを宣言するには、カッコ () 内に要素をカンマで区切って記述します。
タプルの宣言例
my_tuple = (1, 2, 3, 4, 5)
タプル内の要素へのアクセス方法
リストと同様に、タプル内の要素にアクセスするにはタプル名の後に要素のインデックスを指定します。
first_element = my_tuple[0] # 最初の要素にアクセス
second_element = my_tuple[1] # 2番目の要素にアクセス
タプルの不変性
タプルは一度作成したらその内容を変更できません。
# my_tuple[1] = 5 # エラー、タプルは変更不可
この不変性の特性はデータの保護に役立ちマス。
配列の操作
リストやタプルを連結する方法
リストやタプルを連結するには + 演算子を使用します。
これにより、新しいリストが作成され、元のリストやタプルは変更されません。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# リストを連結
combined_list = list1 + list2
print (combined_list)
# [1, 2, 3, 4, 5, 6]が表示されます。
配列内の要素を検索する方法
リスト内の特定の要素を検索するには index() メソッドを使用します。
これにより、指定した要素のインデックスが返されます。
my_list = [10, 20, 30, 40, 50]
# 値が30の要素のインデックスを取得
index = my_list.index(30)
print (index)
# 2 が表示されます。
配列のループ処理
forループを使用して配列を反復処理する方法
Pythonでは、forループを使用して配列(リスト、タプル、辞書など)の要素を簡単に反復処理できます。
以下は基本的なforループの使用例です。
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
# 1
# 2
# 3
# 4
# 5
# が表示されます。
アンパック代入
アンパックは、リストやタプルなどのシーケンス型の要素を分解して変数に代入することデス。
アンパックを使うと複数の値を変数に代入するのに便利。
numbers = [1, 2, 3]
a, b, c = numbers
print(a)
print(b)
print(c)
# 実行結果
# 1
# 2
# 3
リスト numbers
の要素を変数 a
, b
, c
に代入しています。
enumerateを利用した要素とインデックスの取得
時には配列の要素だけでなく、それらのインデックスも必要な場合があります。
enumerate() 関数を使用すると、要素とインデックスを同時に取得できます。
my_list = ['apple', 'banana', 'cherry']
for index, item in enumerate(my_list):
print(f"Index {index}: {item}")
# Index 0: apple
# Index 1: banana
# Index 2: cherry
# が表示されます。
my_list
の中身をenumerate(my_list)
でindex
とitem
に取り出しています。
スライスを使用した範囲指定の配列操作
リストやタプルなどの配列をスライスして特定の範囲を取得できます。
スライスはコロン : を使用して指定し、開始位置、終了位置、ステップ(刻み幅)を指定できます。
以下はスライスの具体的な例です。
my_list = [1, 2, 3, 4, 5]
# インデックス1から3(終了位置は含まない)までの要素を取得
sliced_elements = my_list[1:3]
print(sliced_elements)
# [2, 3]
# が表示されます。
リスト内包表記
リスト内包表記を使って新しいリストを生成する際、コンパクトかつ効率的なコードを書けます。
# 通常のfor文
my_list = [1, 2, 3, 4, 5]
squared_numbers = []
for x in my_list:
squared_numbers.append(x**2)
print(squared_numbers)
# 実行結果
# [1, 4, 9, 16, 25]
コードが短くなる!
my_list = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in my_list]
print(squared_numbers)
# 実行結果
# [1, 4, 9, 16, 25]
配列の長さを確認する方法
len関数を使って、リストの長さを確認する方法です。
my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length)
# 5
# が表示されます。
リストとタプルは配列の基本です、しっかり覚えまショー
リスト、タプル、ループ。「基本」ってかんじだなぁ~