PR
更新:2024/09/16

Pythonのリストと多次元・スライス・内包表記・例題について

ふゅか
ふゅか
Pythonのリストって便利だよね!複数のデータを一つの変数にまとめられるんだから。まるで宝箱みたい!
はるか
はるか
うん、確かに。異なる型も一緒に入れられる。
ふゅか
ふゅか
そうそう!数値も文字列も、全部リストに詰め込んじゃえるんだから、すごいよね〜。
はるか
はるか
でも、混乱するかも。

1. リストとは

Pythonのリスト(list)は、複数の要素を一つの変数に格納することができるデータ型の一つです。リストは、さまざまなデータ型の要素を含めることができ、要素の追加や削除も簡単に行うことができます。

2. リストの作成

リストは、角括弧 [] を使って作成します。リストの要素はコンマ , で区切ります。リストには数値、文字列、他のリストなど、様々なデータ型を含めることが可能です。

# 数値のリスト
numbers = [1, 2, 3, 4, 5]

# 文字列のリスト
fruits = ['apple', 'banana', 'cherry']

# 異なるデータ型を含むリスト
mixed = [1, 'apple', True, 3.14]

# リストのリスト(多次元リスト)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

3. リストのインデックス

リスト内の各要素には、インデックス番号(位置)が付いています。インデックスは0から始まり、要素を参照するために使います。負のインデックスを使うと、リストの最後の要素から数えます。

# インデックスで要素を取得
print(numbers[0])  # 1
print(fruits[1])   # 'banana'

# 負のインデックスで要素を取得
print(numbers[-1])  # 5
print(fruits[-2])   # 'banana'
ふゅか
ふゅか
リストの要素にアクセスするには、インデックス番号を使うんだよね。numbers[0]とか、最初の要素を取得するんだ!
はるか
はるか
そう。負のインデックスも使える。
ふゅか
ふゅか
うんうん、例えばnumbers[-1]で最後の要素が取れるんだよね!逆から数えるのが便利だね〜。

4. リストの操作

4.1. リストへの要素の追加

リストに新しい要素を追加するには、append() メソッドを使います。リストの最後に要素が追加されます。また、insert() メソッドを使うと、指定した位置に要素を挿入することができます。

numbers.append(6)
print(numbers)  # [1, 2, 3, 4, 5, 6]

numbers.insert(2, 9)
print(numbers)  # [1, 2, 9, 3, 4, 5, 6]

4.2. リストからの要素の削除

remove() メソッドを使うと、指定した値をリストから削除することができます。また、pop() メソッドを使うと、指定したインデックスの要素を削除し、その要素を返します。インデックスを指定しない場合は、最後の要素が削除されます。

numbers.remove(9)
print(numbers)  # [1, 2, 3, 4, 5, 6]

last_item = numbers.pop()
print(last_item)  # 6
print(numbers)    # [1, 2, 3, 4, 5]

4.3. リストの結合

2つ以上のリストを結合するには、+ 演算子を使います。また、extend() メソッドを使って、別のリストを追加することもできます。

more_fruits = ['orange', 'grape']
all_fruits = fruits + more_fruits
print(all_fruits)  # ['apple', 'banana', 'cherry', 'orange', 'grape']

fruits.extend(more_fruits)
print(fruits)  # ['apple', 'banana', 'cherry', 'orange', 'grape']

4.4. リストのスライス

リストの一部を取得するために、スライスという手法を使います。スライスは、リストの開始位置と終了位置を指定することで、部分リストを取得します。

# 2番目から4番目までの要素を取得
print(fruits[1:4])  # ['banana', 'cherry', 'orange']

# 先頭から3番目までの要素を取得
print(fruits[:3])  # ['apple', 'banana', 'cherry']

# 4番目から最後までの要素を取得
print(fruits[3:])  # ['orange', 'grape']

4.5. リストのループ処理

リストの要素を順番に処理するには、for ループを使います。

for fruit in fruits:
    print(fruit)
# 出力:
# apple
# banana
# cherry
# orange
# grape

4.6. リスト内包表記

リスト内包表記を使うと、リストを簡潔に作成することができます。リスト内包表記は、既存のリストの各要素に対して操作を行い、新しいリストを生成するための便利な方法です。

# 1から10までの数字を2倍にしたリストを作成
doubled = [x * 2 for x in range(1, 11)]
print(doubled)  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

4.7. リストの長さを取得

len() 関数を使うと、リストの要素数を取得することができます。

print(len(fruits))  # 5

5. 例題

5.1. 例題1:内包表記を利用した例題

リスト my_list = [2, 5, 8, 11, 14] に対して、要素を2倍した新しいリストを作成しなさい。

期待される出力: [4, 10, 16, 22, 28]

解答の手順:

  1. my_listの各要素にアクセスし、それぞれの要素を2倍する。
  2. 新しいリストに結果を追加する。

解答:

my_list = [2, 5, 8, 11, 14]
new_list = [x * 2 for x in my_list]
print(new_list)

5.2. 例題2:内包表記と条件分岐を利用した例題

リスト numbers = [3, 7, 1, 9, 12, 4] から、偶数のみを抽出したリストを作成しなさい。

期待される出力: [12, 4]

解答の手順:

  1. numbersの各要素にアクセスし、偶数かどうかを確認する。
  2. 偶数であれば、新しいリストに追加する。

解答:

numbers = [3, 7, 1, 9, 12, 4]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers)


check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR