17
Pythonで列挙する方法
パイソン
(画像提供:Tom's Hardware)

Pythonでリストやコレクションを作成したら、各要素に番号を付けると便利です。リストを一つずつ手動で番号を追加する代わりに、enumerate関数を使うと便利です。これは組み込みツールで、リストを操作し、タプルまたはリストに追加された順に自動的に番号を付けます。

このガイドでは、既存のリストに対してこのenumerate関数を使用する方法を説明します。変数、リスト、関数の作成方法については既に理解していることを前提としています。リストを列挙したら、後でその列挙値を使って呼び出すことができます。forループ(Pythonでforループを使用する方法を参照)を使用して、列挙値を反復処理することもできます。

Python における列挙とは何ですか?

列挙とは、コレクション内のすべての項目を順序付けてリスト化することです。Pythonでは、リストまたはタプル(データコレクションオブジェクト)を列挙オブジェクトに組み込むことができます。列挙オブジェクトは、オブジェクト内の各列挙メンバーに名前と値を持ちます。タプルなどの他のオブジェクトは不変(更新不可)ですが、列挙オブジェクトは更新可能(変更可能)です。

Pythonで列挙する方法

Pythonで列挙型を使う方法を説明するために、まずフレーバーのリストを用意し、ラベルを「flavors」とします。列挙型関数を適用した後、リストを出力します。リストには、各項目に順番に数字が振られていることがわかります。

1.リスト、コレクション、またはタプルを作成します。この場合、「flavors」という変数にラベル付けされたリストに3つのフレーバーが含まれています。

flavors = ('Raspberry', 'Vanilla', 'Chocolate')

2. enumerate関数を実行します。以下のサンプルコードでは、「flavors」オブジェクトを解析するenumerate関数を引数として、「choices」という変数を作成しています。

flavors = ('Raspberry', 'Vanilla', 'Chocolate')
choices = enumerate(flavors)

3.リストを出力します。これで、コード内で必要に応じて「flavors」オブジェクトを呼び出すことができます。この例では、リストを列挙した状態がどのように見えるかを示すために、リストを出力します。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

flavors = ('Raspberry', 'Vanilla', 'Chocolate')
choices = enumerate(flavors)
print(list(choices))

4.結果を確認します。列挙が成功した場合、印刷されたリストは次のようになります。

[(0, 'Raspberry'), (1, 'Vanilla'), (2, 'Chocolate')]

enumerate関数の動作を示すためにリストを出力しましたが、これは動作の仕組みを示すためだけのものです。2番目のステップ以降は必要に応じてコードに適用できますが、リストを出力することで、意図したとおりに動作しているかどうかを簡単に確認できます。

先ほど、列挙型コレクションには、格納されているデータに関連付けられた値と名前があることを説明しました。これらの値を個別に抽出することができます。以下に、食品の列挙型コレクションを作成する簡単な例を示します。

1. enum モジュールをインポートします。 

import enum

2.関数呼び出し構文を使用して、新しい列挙オブジェクトを作成します。オブジェクト名はfoodで、食品のリストを格納します。enum.Enum関数呼び出しを使用して、各項目名に値をバインドします。

food = enum.Enum('food', ['Tomato', 'Cucumber', 'Chocolate'])

3. forループを使って、オブジェクト内の各項目の値と名前を出力します。forループはオブジェクト内のすべての項目を反復処理します。そして、項目の値と名前を出力します。

for item in food: print(item.value, item.name)

4.コードを実行します。出力は、アイテムの位置の列挙値とアイテムの名前になります。

1 Tomato
2 Cucumber
3 Chocolate

列挙法を使って本の章に番号を付ける

リストに番号を付ける実用的な用途はたくさんあります。この例では、執筆中の本の章に番号を付けます。また、この例では、リストをデフォルト値の0から始めずに、任意の番号から開始する方法も示しています。

この例ではThonnyを使用します。これは複数のプラットフォームで動作する無料のPythonエディタです。Thonnyの公式サイトからダウンロードできます。ただし、プロジェクトにはお好きなエディタをご使用ください。

1.リストを作成する。今回のリストは、本のための架空の章をいくつかまとめたものです。

chapters = ["How to Enumerate in Python", "Creating a List", "Enumerating the List"]

2.リストの先頭を 0 ではなく 1 に設定します。次の行では、章の列挙を 1 から開始することを Python に指示します。「chapter」と「title」の単語は任意のものにすることができます。

chapters = ["How to Enumerate in Python", "Creating a List", "Enumerating the List"]
for chapter, title in enumerate (chapters,1):

3.リストを出力します。3行目は、リストを1から開始するように設定するためのtitle引数を持つchapter変数を出力します。

chapters = ["How to Enumerate in Python", "Creating a List", "Enumerating the List"]
for chapter, title in enumerate (chapters,1):
print(chapter, title)

4.プログラムを実行します。1から始まる番号の章が印刷されます。

トニー

(画像提供:Tom's Hardware)

Pythonのハウツー

  • Windows 10と11にPythonをインストールする方法
  • PythonでForループを使う方法
  • Pythonで列挙する方法
  • Pythonで実行可能なアプリケーションを作成する方法
  • Pythonで画像から背景を削除する方法
  • Python、HTML、ThonnyでWebアプリを作成する方法
  • Raspberry Pi カメラモジュール 3 を Python コードで使う方法

アッシュ・ヒルは、Tom's Hardwareの寄稿ライターです。趣味の電子工作、3Dプリント、PCの分野で豊富な経験を有しています。彼女は今月のRaspberry PiプロジェクトやRaspberry Piに関する日々のレポートの大部分を担当し、あらゆるテクノロジー製品のお得なクーポンやセール情報も探しています。