• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Python / Pythonの配列(リスト)の使い方、メソッド(append, extend, insert, remove, pop, sort, count, index等)についてまとめました

Pythonの配列(リスト)の使い方、メソッド(append, extend, insert, remove, pop, sort, count, index等)についてまとめました

1 リスト型とは何か
2 インデックスによる要素へのアクセス
3 リストへの要素の追加
4 リストからの要素の削除
5 リストのスライシング
6 リストの検索と情報取得
7 ソートと順序変更
8 リストと文字列の相互変換
9 関連記事

この記事では、Pythonのリスト型(list)について、基本的な使い方から実践的なテクニックまで詳しく解説する。

リスト型とは何か

リスト型は、様々なデータ型の要素を格納でき、順序付けられ、変更可能(mutable)なデータ型だ。異なる種類のオブジェクトを順番に並べて保管できる便利な仕組みである。

リストの基本的な作成方法

リストは角括弧[]で囲んで宣言し、要素はカンマで区切って記述する。

# 空のリスト
empty_list = []

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

# 様々な型を含むリスト
mixed = [1, "Hello", 3.14, True]

# ネストされたリスト(リストの中にリスト)
nested = [1, [2, 3], [4, 5, 6]]

print(f"整数リスト: {numbers}")
print(f"混合リスト: {mixed}")

リストのメモリ構造

リストは内部的に、各要素への参照(ポインタ)を保持している。これにより、異なる型の要素を効率的に管理できる仕組みになっている。

my_list = [5, 6, "Hello"]

# リストの長さを取得
print(f"リストの長さ: {len(my_list)}")  # 3

# リストの型を確認
print(f"データ型: {type(my_list)}")  # <class 'list'>

インデックスによる要素へのアクセス

リストの要素には、0から始まるインデックス番号を使ってアクセスできる。負のインデックスを使えば、末尾から数えることも可能だ。

fruits = ["りんご", "バナナ", "オレンジ", "ぶどう", "メロン"]

# 正のインデックス(先頭から)
first = fruits[0]    # "りんご"
third = fruits[2]    # "オレンジ"

# 負のインデックス(末尾から)
last = fruits[-1]    # "メロン"
second_last = fruits[-2]  # "ぶどう"

print(f"最初の果物: {first}")
print(f"最後の果物: {last}")

# インデックスの範囲外アクセスはエラーになる
# print(fruits[10])  # IndexError: list index out of range
負のインデックスは非常に便利な機能だ。特に「最後の要素だけが欲しい」という場面では、リストの長さを調べる必要がなく、単純に[-1]でアクセスできる。
Python講座

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)

受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。

リストへの要素の追加

リストは作成後も要素を自由に追加できる。用途に応じて複数の方法が用意されている。

単一要素の追加

append()メソッド: リストの末尾に単一要素を追加する insert()メソッド: 指定したインデックス位置に要素を挿入する

my_list = [1, 2, 3]

# 末尾への要素の追加
my_list.append(4)
print(my_list)  # [1, 2, 3, 4]

# 特定の位置への要素の挿入
my_list.insert(1, "新要素")
print(my_list)  # [1, "新要素", 2, 3, 4]

複数要素の追加

extend()メソッド: 別のリストの要素を現在のリストに追加する +演算子: 2つのリストを結合して新しいリストを作成する

my_list = [1, 2, 3]

# リストの拡張(別のリストの要素を追加)
my_list.extend([4, 5, 6])
print(my_list)  # [1, 2, 3, 4, 5, 6]

# + 演算子を使った結合(新しいリストを作成)
new_list = my_list + [7, 8, 9]
print(new_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

リストからの要素の削除

要素の削除にも複数の方法があり、それぞれ異なる特徴を持っている。 remove()メソッド: 指定した値と一致する最初の要素を削除する pop()メソッド: 指定したインデックスの要素を削除し、その値を返す clear()メソッド: リスト内のすべての要素を削除する

my_list = [1, 2, 3, 4, 3, 5]

# 値を指定して削除(最初に見つかったもの)
my_list.remove(3)
print(my_list)  # [1, 2, 4, 3, 5]

# インデックスを指定して削除し、削除した要素を取得
my_list = [1, 2, 3, 4, 5]
element = my_list.pop(2)  # インデックス2の要素を削除
print(f"削除した要素: {element}")  # 3
print(my_list)  # [1, 2, 4, 5]

# 末尾の要素を削除(インデックス省略)
last_element = my_list.pop()
print(f"最後の要素: {last_element}")  # 5
print(my_list)  # [1, 2, 4]

# リストをクリア(全要素削除)
my_list.clear()
print(my_list)  # []

リストのスライシング

スライシングは、リストから部分リストを抽出する強力な機能だ。基本構文はlist[start:stop:step]となる。

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 基本的な切り出し
slice1 = my_list[2:7]     # [2, 3, 4, 5, 6]
slice2 = my_list[1:8:2]   # [1, 3, 5, 7] (2文字おき)
slice3 = my_list[:3]      # [0, 1, 2] (開始位置省略)
slice4 = my_list[3:]      # [3, 4, 5, 6, 7, 8, 9] (終了位置省略)

# 逆順取得
reverse = my_list[::-1]   # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

print(f"部分リスト: {slice1}")
print(f"2文字おき: {slice2}")
print(f"逆順: {reverse}")
スライシングを用いれば、一度の操作で複雑な部分抽出や逆順変換ができるため、データ処理の効率が格段に向上する。特に[::-1]による逆順取得は、多くのプログラマーが愛用する方法だ。

リストの検索と情報取得

リスト内の要素を検索したり、リストの状態を調べる便利なメソッドが用意されている。 count()メソッド: 指定した値がリスト内に何回出現するかをカウントする index()メソッド: 指定した値が最初に現れるインデックスを返す in演算子: 要素がリスト内に存在するかをTrue/Falseで返す

my_list = [10, 20, 30, 20, 40]

# 要素の数を数える
count_20 = my_list.count(20)
print(f"20の出現回数: {count_20}")  # 2

# 要素のインデックスを取得(最初に見つかったもの)
index_30 = my_list.index(30)
print(f"30のインデックス: {index_30}")  # 2

# 要素の存在確認
exists = 30 in my_list
not_exists = 50 in my_list
print(f"30は存在する: {exists}")      # True
print(f"50は存在する: {not_exists}")  # False

# 存在しない要素を検索する場合のエラー処理
try:
    index = my_list.index(50)
except ValueError:
    print("指定した値は見つかりませんでした")
Python講座

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)

受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。

ソートと順序変更

リストの要素を並び替える操作も、Pythonでは簡単に実行できる。

破壊的な変更(元のリストを変更)

sort()メソッド: リスト内の要素を直接ソートする(元のリストを変更) reverse()メソッド: リストの要素順序を直接逆順にする(元のリストを変更)

numbers = [3, 1, 4, 1, 5, 9]

# 昇順ソート
numbers.sort()
print(f"昇順: {numbers}")  # [1, 1, 3, 4, 5, 9]

# 降順ソート
numbers.sort(reverse=True)
print(f"降順: {numbers}")  # [9, 5, 4, 3, 1, 1]

# リストを逆順にする
fruits = ["apple", "banana", "orange"]
fruits.reverse()
print(f"逆順: {fruits}")  # ["orange", "banana", "apple"]

非破壊的な変更(新しいリストを作成)

sorted()関数: 元のリストを変更せずに新しいソートされたリストを返す

original = [3, 1, 4, 1, 5, 9]

# sorted()関数を使用(元のリストは変更されない)
sorted_asc = sorted(original)
sorted_desc = sorted(original, reverse=True)

print(f"元のリスト: {original}")      # [3, 1, 4, 1, 5, 9]
print(f"昇順ソート: {sorted_asc}")    # [1, 1, 3, 4, 5, 9]
print(f"降順ソート: {sorted_desc}")   # [9, 5, 4, 3, 1, 1]
Python講座

【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)

受講生3000人ほどの人気講座。Pythonの基礎から生成AI活用までを20時間ほどで一気に学びます。業務で活かせるPythonの基礎知識はしっかりと身につきます。

リストと文字列の相互変換

リストと文字列は、相互に変換できる便利な関係にある。 split()メソッド: 文字列を指定した区切り文字でリストに分割する join()メソッド: リストの要素を指定した区切り文字で結合して文字列にする

# 文字列をリストに分割
text = "Python programming is fun"
words = text.split()  # 空白で分割
print(f"単語リスト: {words}")  # ["Python", "programming", "is", "fun"]

# 特定の文字で分割
csv_data = "apple,banana,orange"
fruits = csv_data.split(",")
print(f"果物リスト: {fruits}")  # ["apple", "banana", "orange"]

# リストを文字列に結合
word_list = ["Hello", "World", "Python"]
sentence = " ".join(word_list)  # 空白で結合
print(f"文章: {sentence}")  # "Hello World Python"

# 特定の区切り文字で結合
hyphenated = "-".join(["2025", "01", "15"])
print(f"日付: {hyphenated}")  # "2025-01-15"

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 2
    Python未経験だが、フリーランスの案件に採用さ…
  • 3
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 リスト型とは何か
2 インデックスによる要素へのアクセス
3 リストへの要素の追加
4 リストからの要素の削除
5 リストのスライシング
6 リストの検索と情報取得
7 ソートと順序変更
8 リストと文字列の相互変換
9 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Python講座
【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)
受講生3000人ほどの人気講座。<strong>Pythonの基礎から生成AI活用</strong>...
詳細 ▶

Footer

利用規約