「pythonで複数の数字や文字をまとめて管理したい」
「配列っていう言葉を聞くけど、pythonではどう書くの?」
そんな疑問をお持ちのあなたへ。今回はリスト(配列のようなもの)について、初心者の方でも理解できるように詳しく説明していきます。
pythonでは「配列」の代わりに「リスト」という機能を使います。
これがとても便利で、数字や文字列など、いろんなデータをひとまとめにして扱うことができるんです。
この記事を読めば、リストの基本的な使い方から実践的なテクニックまで身につけることができます。
pythonの「配列」はリスト(list)で作る

pythonでは、複数のデータをまとめる時にリストを使います。
基本的な作り方
# 果物のリストを作る
fruits = ["りんご", "バナナ", "みかん"]
print(fruits) # ['りんご', 'バナナ', 'みかん']
# 数字のリストを作る
numbers = [1, 2, 3, 4, 5]
print(numbers) # [1, 2, 3, 4, 5]
# 空のリストを作る
empty_list = []
print(empty_list) # []
リストの特徴
pythonのリストには以下のような特徴があります:
- 角括弧[ ]で囲んで作る
- データをカンマ(,)で区切る
- 異なる種類のデータを混ぜて入れることができる
- 後から要素を追加したり削除できる
# いろんなデータを混ぜて入れられる
mixed_list = ["太郎", 25, True, 3.14]
print(mixed_list) # ['太郎', 25, True, 3.14]
リストの要素にアクセスする方法
リストの中の特定のデータを取り出したい時は、番号(インデックス)を使います。
基本的なアクセス方法
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 最初の要素(0番目)
print(fruits[0]) # りんご
# 2番目の要素(1番目)
print(fruits[1]) # バナナ
# 最後の要素
print(fruits[-1]) # ぶどう
# 後ろから2番目の要素
print(fruits[-2]) # みかん
複数の要素を取り出す(スライス)
fruits = ["りんご", "バナナ", "みかん", "ぶどう", "もも"]
# 最初から2個取り出す
print(fruits[0:2]) # ['りんご', 'バナナ']
# 2番目から4番目まで取り出す
print(fruits[1:4]) # ['バナナ', 'みかん', 'ぶどう']
# 最初から3番目まで取り出す
print(fruits[:3]) # ['りんご', 'バナナ', 'みかん']
# 2番目から最後まで取り出す
print(fruits[2:]) # ['みかん', 'ぶどう', 'もも']
リストの要素を変更する
リストの中身は後から変更することができます。
fruits = ["りんご", "バナナ", "みかん"]
# 2番目の要素を変更
fruits[1] = "メロン"
print(fruits) # ['りんご', 'メロン', 'みかん']
# 複数の要素をまとめて変更
fruits[0:2] = ["いちご", "キウイ"]
print(fruits) # ['いちご', 'キウイ', 'みかん']
リストに要素を追加する方法

最後に追加する(append)
fruits = ["りんご", "バナナ"]
# 最後に要素を追加
fruits.append("みかん")
print(fruits) # ['りんご', 'バナナ', 'みかん']
fruits.append("ぶどう")
print(fruits) # ['りんご', 'バナナ', 'みかん', 'ぶどう']
指定した位置に挿入する(insert)
fruits = ["りんご", "バナナ", "みかん"]
# 1番目の位置に「メロン」を挿入
fruits.insert(1, "メロン")
print(fruits) # ['りんご', 'メロン', 'バナナ', 'みかん']
複数の要素をまとめて追加する(extend)
fruits = ["りんご", "バナナ"]
new_fruits = ["みかん", "ぶどう", "もも"]
# 複数の要素をまとめて追加
fruits.extend(new_fruits)
print(fruits) # ['りんご', 'バナナ', 'みかん', 'ぶどう', 'もも']
リストから要素を削除する方法

値を指定して削除する(remove)
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 「バナナ」を削除
fruits.remove("バナナ")
print(fruits) # ['りんご', 'みかん', 'ぶどう']
位置を指定して削除する(del)
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 1番目の要素を削除
del fruits[1]
print(fruits) # ['りんご', 'みかん', 'ぶどう']
最後の要素を取り出して削除する(pop)
fruits = ["りんご", "バナナ", "みかん"]
# 最後の要素を取り出して削除
last_fruit = fruits.pop()
print(last_fruit) # みかん
print(fruits) # ['りんご', 'バナナ']
# 指定した位置の要素を取り出して削除
first_fruit = fruits.pop(0)
print(first_fruit) # りんご
print(fruits) # ['バナナ']
リストで使える便利な機能

よく使うメソッド一覧
メソッド | 説明 | 使用例 |
---|---|---|
append(x) | 最後にxを追加 | list.append("新要素") |
insert(i, x) | i番目にxを挿入 | list.insert(1, "新要素") |
remove(x) | 値xを削除 | list.remove("削除したい値") |
pop() | 最後の要素を取り出して削除 | item = list.pop() |
sort() | 昇順に並び替え | list.sort() |
reverse() | 要素の順序を逆にする | list.reverse() |
count(x) | 値xの個数を数える | list.count("値") |
index(x) | 値xの位置を調べる | list.index("値") |
実際に使ってみよう
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
# 並び替え
numbers.sort()
print(numbers) # [1, 1, 2, 3, 4, 5, 6, 9]
# 順序を逆にする
numbers.reverse()
print(numbers) # [9, 6, 5, 4, 3, 2, 1, 1]
# 特定の値の個数を数える
count_of_1 = numbers.count(1)
print(count_of_1) # 2
# 特定の値の位置を調べる
position_of_5 = numbers.index(5)
print(position_of_5) # 2
リストとfor文で繰り返し処理
リストの全ての要素に対して同じ処理をしたい時は、for文と組み合わせると便利です。
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# すべての果物を表示
for fruit in fruits:
print(f"好きな果物:{fruit}")
# 結果:
# 好きな果物:りんご
# 好きな果物:バナナ
# 好きな果物:みかん
# 好きな果物:ぶどう
番号付きで処理したい場合
fruits = ["りんご", "バナナ", "みかん"]
# enumerate()を使って番号付きで処理
for i, fruit in enumerate(fruits):
print(f"{i + 1}番目の果物:{fruit}")
# 結果:
# 1番目の果物:りんご
# 2番目の果物:バナナ
# 3番目の果物:みかん
リストの便利な関数
今から紹介する関数は、引数にリストを指定すれば特定の値を取得できる。
len()で要素数を調べる
fruits = ["りんご", "バナナ", "みかん"]
print(len(fruits)) # 3
sum()で合計を計算する
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 15
max()、min()で最大値・最小値を見つける
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print(max(numbers)) # 9
print(min(numbers)) # 1
2次元リスト(リストの中にリスト)

リストの中にリストを入れることで、表のようなデータを作ることができます。
# 3x3の表を作る
table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 2行目の3列目にアクセス
print(table[1][2]) # 6
# すべての要素を表示
for row in table:
for cell in row:
print(cell, end=" ")
print() # 改行
# 結果:
# 1 2 3
# 4 5 6
# 7 8 9
よくある間違いと注意点
存在しない番号にアクセスする
fruits = ["りんご", "バナナ", "みかん"]
# 間違い:4番目は存在しない
# print(fruits[3]) # IndexError
# 正しい:事前に長さを確認
if len(fruits) > 3:
print(fruits[3])
else:
print("4番目の要素は存在しません")
存在しない値を削除しようとする
fruits = ["りんご", "バナナ", "みかん"]
# 間違い:「ぶどう」は存在しない
# fruits.remove("ぶどう") # ValueError
# 正しい:事前に確認
if "ぶどう" in fruits:
fruits.remove("ぶどう")
else:
print("ぶどうは見つかりませんでした")
リストをコピーする時の注意
# 間違い:これは参照をコピーしているだけ
list1 = [1, 2, 3]
list2 = list1
list2.append(4)
print(list1) # [1, 2, 3, 4] ← list1も変わってしまう
# 正しい:copy()で新しいリストを作る
list1 = [1, 2, 3]
list2 = list1.copy()
list2.append(4)
print(list1) # [1, 2, 3] ← list1は変わらない
print(list2) # [1, 2, 3, 4]
リストとnumpy配列の違い
pythonには標準のリスト以外に、numpyというライブラリの配列もあります。
特徴 | list(リスト) | numpy.array |
---|---|---|
用途 | 汎用的なデータ保存 | 数値計算に特化 |
データ型 | 混合OK | 同じ型のみ |
計算 | 基本的な操作のみ | 高速な数学計算 |
必要なもの | 標準機能 | numpyライブラリ |
# 標準のリスト
numbers_list = [1, 2, 3]
print(numbers_list * 2) # [1, 2, 3, 1, 2, 3]
# numpy配列(numpyが必要)
import numpy as np
numbers_array = np.array([1, 2, 3])
print(numbers_array * 2) # [2 4 6]
よくある質問

- Q空のリストを作るにはどうすれば良い?
- A
empty_list = []
またはempty_list = list()
で作ることができます。
- Q文字列を1文字ずつのリストにするには?
- A
A:
list()
関数を使います。text = "python"
char_list = list(text)
print(char_list) # ['p', 'y', 't', 'h', 'o', 'n']
- Qリストの中身をすべて削除するには?
- A
clear()
メソッドを使います。fruits = ["りんご", "バナナ", "みかん"]
fruits.clear()
print(fruits) # []
- Qリストに特定の値が含まれているか調べるには?
- A
A:
in
キーワードを使います。fruits = ["りんご", "バナナ", "みかん"] if "バナナ" in fruits: print("バナナがあります")
まとめ
pythonのリストは、複数のデータをまとめて管理できる便利な機能です。
おさらい:
- リストの作成:
[]
で囲んでカンマで区切る - アクセス:番号(インデックス)で要素を取り出し
- 追加・削除:
append()
、remove()
、pop()
などのメソッド - 便利な機能:
sort()
、reverse()
、count()
など - 繰り返し処理:for文と組み合わせて全要素を処理
コメント