この記事は、以下の記事の続きです。
前回は if文・for文といった制御構文 を学びました。
今回はそれらとセットで使われることが多い
データ構造の基本「リスト(list)」 を解説します。
リスト
リストとは?
リスト(list) は、複数の値を 1つの変数にまとめて管理できるデータ構造 です。
- 複数の値を順番に保持できる
- 要素の追加・削除・変更が可能
- Pythonで最もよく使われるデータ構造
「同じ種類のデータをまとめて扱いたい」
そんなときにリストを使います。
リストの作り方
リストは 角かっこ [] を使って作ります。
fruits = ["りんご", "みかん", "ぶどう"]
インデックス番号について
リストの要素には インデックス(番号) が割り振られます。
Pythonでは0から始まる点に注意してください。
print(fruits[0]) # りんご
print(fruits[1]) # みかん
print(fruits[2]) # ぶどう
実行結果は次の通りになります。
りんご
みかん
ぶどう
リストに要素を追加する
append() は リストの末尾に要素を追加します。
fruits.append("バナナ")
print(fruits)
実行結果は次の通りになります。
['りんご', 'みかん', 'ぶどう', 'バナナ']
リストから要素を削除する
pop() は末尾の要素を削除します。削除した値を変数として受け取れます。
fruit = fruits.pop()
print(fruit) # バナナ
print(fruits) # ['りんご', 'みかん', 'ぶどう']
実行結果は次の通りになります。
バナナ
['りんご', 'みかん', 'ぶどう']
インデックスを指定して削除する
pop() は末尾だけではなく、指定したインデックスの値も削除します。削除した値を変数として受け取れます。
fruits = ["りんご", "みかん", "ぶどう"]
removed = fruits.pop(1)
print(removed) # みかん
print(fruits) # ['りんご', 'ぶどう']
実行結果は次の通りになります。
みかん
['りんご', 'ぶどう']
リストの要素を変更する
リストの値は次のようにインデックスを指定して代入することにより変更が可能です。
numbers = [10, 20, 30]
numbers[1] = 25
print(numbers)
実行結果は次の通りになります。もともと20だったnumber[1]が25になっていることがわかります。
[10, 25, 30]
forループでリストを順番に処理する
forループの基本
リストは forループと組み合わせて使うのが基本 です。
forループを使うと、リストの中身を先頭から順番に1つずつ処理できます。
基本構文
for 変数 in リスト:
繰り返し実行したい処理
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
print(fruit)
実行結果は次の通りになります。
りんご
みかん
ぶどう
forループの動き方(重要)
この forループは、次の流れで動いています。
- リストの先頭要素 "りんご" を取り出す
- それを変数 fruit に代入
- print(fruit) を実行
- 次の要素 "みかん" に進む
リストの最後まで繰り返す
インデックスを意識しなくても、自動で順番に処理されるのがforループの特徴です。
インデックス番号も使いたい場合(enumerate)
以下のようにすると、インデックス番号を伴ったfor文を作ることが出来ます。
fruits = ["りんご", "みかん", "ぶどう"]
for i, fruit in enumerate(fruits):
print(i, fruit)
実行結果は次の通りになります。
0 りんご
1 みかん
2 ぶどう
i → インデックス番号
fruit → 要素の値
if文と組み合わせた例
if文と組み合わせた処理もよく利用されます。
numbers = [10, 20, 30, 40]
for n in numbers:
if n >= 30:
print(n)
実行結果は次の通りになります。
30
40
リスト内の30以上の値のみが表示されていることがわかります。