Pythonを学び始めると必ず出てくるのが「データ型」という考え方です。
この記事では、Pythonの主要なデータ型(整数・文字列・リスト・辞書)を中心に、初心者にも理解しやすいように整理して解説します。
目次
🔹 1. Pythonのデータ型とは?
プログラムの中で扱う値には「種類(型)」があります。
これを データ型(Data Type)と呼びます。
| データ型 | 説明 | 例 |
|---|---|---|
| int(整数型) | 整数を扱う | 10, -5, 1000 |
| float(浮動小数点) | 小数を扱う | 3.14, -0.5 |
| str(文字列型) | 文字列を扱う | “Python”, ‘AI’ |
| list(リスト型) | 複数の値をまとめて扱う | [1, 2, 3], [“a”, “b”] |
| dict(辞書型) | キーと値のペアで扱う | {“name”: “Tanaka”, “age”: 30} |
Pythonは動的型付け言語のため、変数に代入すると自動的に型が決まります。
つまり、JavaやC言語のように「型宣言」は不要です。
x = 5
print(x) # 出力: 5
x = "Python"
print(x) # 出力: Python
➡ 同じ変数xに整数→文字列を代入しても問題ありません。
🔹 2. データ型を確認してみよう
型を確認するには、組み込み関数type()を使います。
print(type(10)) # <class 'int'>
print(type("Hello")) # <class 'str'>
print(type([1, 2])) # <class 'list'>
🔹 3. 数値型(int / float / complex)
Pythonには3種類の数値型があります。
| 種類 | 型名 | 例 | 説明 |
|---|---|---|---|
| 整数 | int | 10, -5 | 小数点なしの数値 |
| 小数 | float | 3.14, -0.5 | 小数点を含む数値 |
| 複素数 | complex | 3 + 2j | 高度な数値演算で使用(通常はほぼ使わない) |
print(type(3)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type(3j)) # <class 'complex'>
🔹 4. 文字列型(str)
文字列は ' ' または " " で囲みます。
複数行の場合は """ """ で囲むのが便利です。
str1 = 'Hello'
str2 = "World"
str3 = """Hello
Python"""
🔸 文字列の結合と反復
| 操作 | 記号 | 説明 | 例 |
|---|---|---|---|
| 結合 | + | 文字列をつなぐ | "Hello" + "World" → "HelloWorld" |
| 反復 | * | 文字列を繰り返す | "Hi" * 3 → "HiHiHi" |
print("Python" + "3") # Python3
print("AI!" * 3) # AI!AI!AI!
🔹 5. 型変換(キャスト)
異なる型を結合するとエラーになります。
name = "Tom"
age = 24
# これはエラー
print("My name is " + name + " and I'm " + age)
TypeError: can only concatenate str (not "int") to str
➡ 解決方法は 型変換(キャスト)です。
print("My name is " + name + " and I'm " + str(age))
| 関数 | 変換内容 | 例 |
|---|---|---|
str() | 数値 → 文字列 | str(100) → "100" |
int() | 文字列 → 整数 | int("100") → 100 |
float() | 文字列 → 小数 | float("3.14") → 3.14 |
🔹 6. リスト型(list)
リストは複数の値を1つの変数で管理できるデータ型です。
書き方は、角括弧 [] で囲み、カンマで区切ります。
fruits = ["apple", "banana", "orange"]
print(fruits) # ['apple', 'banana', 'orange']
リストの要素は インデックス番号(0から) でアクセスします。
print(fruits[0]) # apple
print(fruits[2]) # orange
存在しないインデックスにアクセスすると IndexError が発生します。
🔸 要素の追加
fruits.append("grape")
print(fruits) # ['apple', 'banana', 'orange', 'grape']
🔸 リストを変数名にしない!
list = [1, 2, 3] # ❌ NG:組み込み関数list()を上書き
del list # ✅ delで削除すれば復活できる
🔹 7. 辞書型(dict)
辞書は キーと値(key:value) をペアで管理します。
データをラベル付きで扱いたい時に便利です。
profile = {"name": "Tanaka", "email": "test@example.com"}
print(profile["name"]) # Tanaka
print(profile["email"]) # test@example.com
🔸 辞書の追加方法
profile["age"] = 30 # 代入で追加
profile.update({"city": "Tokyo"}) # updateで追加
print(profile)
| 操作方法 | 特徴 |
|---|---|
= で追加 | 高速・シンプル |
update() | 可読性が高い(辞書ごとまとめて追加可) |
🔹 8. リスト型と辞書型の違い
| 比較項目 | リスト型(list) | 辞書型(dict) |
|---|---|---|
| 構文 | [] | {} |
| アクセス方法 | インデックス番号 | キー名 |
| 順序 | Python 3.7以降は保持される | 保持される |
| データの検索 | 位置指定 | 名前(キー)指定 |
| 用途 | 順番のあるデータ | 名前付きデータ |
🔹 9. 演習問題(基礎確認)
1️⃣ 2017〜2021を要素に持つリスト years_list を作成
2️⃣ years_list から2020年と2021年を出力
3️⃣ 好きな文字列3つを含むリストを作成
4️⃣ そのリストの末尾に新しい文字列を追加
5️⃣ 名前と年齢のペアを持つ辞書を3人分作成
6️⃣ 辞書 profile = {"name": "tanaka", "email": "test@aiacademy.jp"} からメールを出力
答えはまとめの下に説明込みで記事にしています。
✅ まとめ
- Pythonは「動的型付け」で型宣言が不要
- 型を確認するには
type()を使用 - 文字列の連結では
+、繰り返しでは*を使用 - 異なる型の結合には「キャスト」が必要
- リストは順序で、辞書はキーでアクセス
どちらも日常的に使う基本型なので、しっかり身につけておきましょう。
Pythonデータ型|演習問題の解答と解説【初学者向け】
ここでは、前回紹介した演習問題を実際にコードで解きながら、1つずつ丁寧に解説していきます。
すべて Python 3.12 以降で動作確認済みです。
🔹 Q1. 2017年から2021年までの要素を持ったリストを作る
years_list = [2017, 2018, 2019, 2020, 2021]
print(years_list)
▶ 解説:[](角括弧)で囲むことで、複数の値を1つの変数にまとめることができます。
このようなデータ構造を「リスト(list)」と呼びます。
🔹 Q2. years_list から 2020年を取り出して出力
print(years_list[3])
▶ 解説:
リストの要素は 0から数える ため、2017 → index 0、2018 → index 1、2019 → index 2、2020 → index 3 です。
そのため years_list[3] で 2020 が取得できます。
🔹 Q3. years_list から 2021年を出力
print(years_list[-1])
▶ 解説:
インデックスは後ろからも指定できます。-1 は「最後の要素」を意味します。
このように負のインデックスを使うと、末尾から簡単にアクセスできます。
🔹 Q4. 好きな文字列3つを要素にしてリストを作る
languages = ["Python", "JavaScript", "HTML"]
print(languages)
▶ 解説:
文字列(str型)を要素に持つリストです。
リストには異なる型(数値や文字列など)を混在させることもできますが、
同じ型でそろえると扱いやすくなります。
🔹 Q5. 4で作ったリストの末尾に新しい要素を追加
languages.append("CSS")
print(languages)
▶ 解説:append() メソッドを使うと、リストの最後に新しい要素を追加できます。
追加は1要素ずつ行うのが基本です。
🔹 Q6. 名前と年齢のペアが3つある辞書型を作る
people = {
"tanaka": 28,
"suzuki": 34,
"yamada": 22
}
print(people)
▶ 解説:
辞書型(dict)は {} を使い、キーと値(key:value) のペアでデータを管理します。"tanaka" というキーに 28 という値が対応しています。
アクセスするには次のように書きます。
print(people["tanaka"]) # 28
🔹 Q7. 辞書からメールアドレス部分を出力する
profile = {"name": "tanaka", "email": "test@aiacademy.jp"}
print(profile["email"])
▶ 解説:
辞書は「キー」を指定して値を取り出します。
この場合、キー "email" に対応する値 "test@aiacademy.jp" が出力されます。
まとめ:学んだポイント
| 内容 | キー操作 | 覚えておくポイント |
|---|---|---|
| リスト | [index] | インデックスは0から始まる。負の数で末尾からも指定可。 |
| リスト追加 | .append() | 末尾に1つ追加する。 |
| 辞書 | {key: value} | キーと値のペアで管理する。 |
| 辞書アクセス | dict["key"] | キーを指定して値を取り出す。 |





