Python リスト型からin演算子までの学習まとめ


# Python リスト型から`in`演算子までの学習まとめ


## **1. リスト型とは？**

リスト型は、複数のデータを順序付きで保存できるPythonの基本データ型です。

### **特徴**
- **順序付き**: データが保存された順序が保持されます。
- **複数の型が混在可能**: 整数、文字列、リストなど、異なる型のデータを格納できます。
- **変更可能**: 要素を追加・削除・変更できます。

### **リストの作成**
リストは角括弧 `[]` を使って作成し、要素をカンマ `,` で区切ります。

~~~python
fruits = ["apple", "banana", "cherry"]
print(fruits)
~~~

#### **出力**
~~~plaintext
['apple', 'banana', 'cherry']
~~~


## **2. リスト要素へのアクセス**

### **インデックスでのアクセス**
リストの要素は、インデックスを使ってアクセスできます。インデックスは0から始まります。

~~~python
fruits = ["apple", "banana", "cherry"]
print(fruits[0])   # 最初の要素
print(fruits[-1])  # 最後の要素
~~~

#### **出力**
~~~plaintext
apple
cherry
~~~

---

## **3. リストの操作**

リストの要素を操作するための便利なメソッドがあります。

~~~python
fruits = ["apple", "banana", "cherry"]
~~~
### **代表的なリストメソッド**
1. **`.append(要素)`**: リストの末尾に要素を追加します。
   ~~~python
   fruits.append("grape")
   print(fruits)  # ['apple', 'banana', 'cherry', 'grape']
   ~~~

2. **`.insert(インデックス, 要素)`**: 指定した位置に要素を挿入します。
   ~~~python
   fruits.insert(1, "grape")
   print(fruits)  # ['apple', 'grape', 'banana', 'cherry']
   ~~~

3. **`.remove(要素)`**: 指定した要素を削除します（最初に見つかったもののみ）。
   ~~~python
   fruits.remove("banana")
   print(fruits)  # ['apple', 'cherry']
   ~~~

4. **`.sort()`**: リストを昇順に並び替えます。
   ~~~python
   numbers = [3, 1, 2]
   numbers.sort()
   print(numbers)  # [1, 2, 3]
   ~~~

5. **`len()`**: リストの要素数を取得します。
   ~~~python
   print(len(fruits))  # 3
   ~~~

---

## **4. リストの結合**

リスト同士を結合するには、`+` 演算子を使用します。

~~~python
list1 = [1, 2, 3]
list2 = [4, 5]
combined = list1 + list2
print(combined)  # [1, 2, 3, 4, 5]
~~~

---

## **5. `append` メソッドとリスト結合の違い**

### **違いのポイント**
| **項目**                | **`.append()`**                          | **リスト結合（`+`）**                 |
|-------------------------|------------------------------------------|----------------------------------------|
| **目的**               | 1つの要素をリストの末尾に追加            | 2つ以上のリストを結合して新しいリストを作成 |
| **元のリストへの影響** | 元のリストが変更される（破壊的操作）      | 元のリストは変更されない（非破壊的操作）|
| **結果**               | 元のリストに1つの要素が追加される        | 結合された新しいリストが作成される      |
| **使用例**             | `list1.append(4)` → `[1, 2, 3, 4]`       | `[1, 2, 3] + [4, 5]` → `[1, 2, 3, 4, 5]` |

---

### **例1: `append` の場合**
~~~python
list1 = [1, 2, 3]
list1.append(4)
print(list1)  # [1, 2, 3, 4]
~~~

### **例2: `+` 演算子の場合**
~~~python
list1 = [1, 2, 3]
list2 = [4, 5]
combined = list1 + list2
print(combined)  # [1, 2, 3, 4, 5]
~~~

#### **注意**
- **`append` は1つの要素を追加する**:
  ~~~python
  list1.append([4, 5])
  print(list1)  # [1, 2, 3, [4, 5]]
  ~~~
  上記のようにリスト全体を追加すると、「リストの中にリスト」が作成されます。

- **`+` はリスト同士を結合する**:
  ~~~python
  list1 = [1, 2, 3]
  list2 = [4, 5]
  combined = list1 + list2
  print(combined)  # [1, 2, 3, 4, 5]
  ~~~

---

## **6. 文字列操作**

### **`join`**
リストの要素を文字列として結合します。

~~~python
words = ["Python", "is", "fun"]
sentence = " ".join(words)
print(sentence)  # Python is fun
~~~

### **`split`**
文字列を区切り文字で分割し、リストに変換します。

~~~python
sentence = "Python is fun"
words = sentence.split(" ")
print(words)  # ['Python', 'is', 'fun']
~~~

---

## **7. `in` 演算子**

`in` 演算子は、要素がリストや文字列などのコレクション型に含まれているかを確認します。

~~~python
fruits = ["apple", "banana", "cherry"]
print("apple" in fruits)  # True
print("grape" in fruits)  # False
~~~

---

## **まとめ**

- **リスト型**はデータを順序付けて管理するのに便利。
- **`append` と `+`**:
  - `append` は1つの要素を追加し、元のリストを変更する。
  - `+` 演算子はリスト同士を結合し、新しいリストを作成する。
- **`in` 演算子**で特定の要素がリストや文字列に含まれているかを簡単に確認できる。

---