Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
今回はPythonの組み込み関数のうち、便利なenumrate関数の使い方の基本を解説します。enumerateとは英語で「列挙する」という意味の単語です。では何を列挙してくれるのかというと次の2つの情報です。
これら2つの情報をタプルにして返してくれる機能をもつオブジェクト(enumerateオブジェクト)が、enumerate関数によって作成されます。ただし以下のように注意点があります。
上のおおざっぱな説明では少しわかりにくかったでしょうが、enumerate関数を使ううえで重要なのは、enumerate関数を実行した結果として出来上がるのは、enumerateオブジェクトというオブジェクトであって、実行した結果として直接的にタプルオブジェクトが作られるわけではないという点です。
この点を意識しながら、さっそく基本的な使い方を見ていきましょう。
enumerate関数は2つの引数を使い、次のように使います。
enumerate(①, ②)
第1引数の① | イテラブルオブジェクト (典型例はリスト) |
第2引数の② | キーワード引数として、インデックス番号を何番から始めるかを設定 (書き方:start=整数) |
次に使用例です。簡単なコードを書いてみました。
# 会社名のリストオブジェクトを作成
companies : list = ["Goole", "Apple", "Microsoft", "Meta"]
# enumerate関数はenumerateオブジェクトというものを返す。それをenumerate_objに代入。この時点ではタプルオブジェクトが直接できあがるわけではない
enumerate_obj = enumerate(companies, start=0)
# 型確認
type(enumerate_obj) # ==> <class 'enumerate'>
# 属性を確認
dir(enumerate_obj) # __iter__メソッドが存在しているので、イテラブルオブジェクトの1つ
# イテラブルオブジェクトして使用
for i in enumerate_obj:
print(i)
これを実行すると、
(0, 'Goole')
(1, 'Apple')
(2, 'Microsoft')
(3, 'Meta')
となります。
単純なコードですし、さらにコメントも入れてありますので特に解説は必要ないかと思われますが、上述の注意点を踏まえると、
という3点です。
なお上のコードをenumerate関数を使わずに書くと、こんなふうに書けます。
companies : list = ["Goole", "Apple", "Microsoft", "Meta"]
def enumeration(x, start):
for i in x:
tpl: tuple = (start, i)
print(tpl)
start +=1
enumeration(companies, start=0)
結果は、
(0, 'Goole')
(1, 'Apple')
(2, 'Microsoft')
(3, 'Meta')
となります。同じですね。
今回の解説でもイテラブルオブジェクトというものが理解の1つの鍵でした。このイテラブルオブジェクトについては、「【初心者にもわかりやすく】Pythonのイテレータについて、その基本とfor文の仕組みを解説」で解説していますでぜひ読んでみてください。
またこのenumerate関数とZip関数とを組み合わせた使い方についても、「【初心者向け】PythonのZip関数の解説」で解説していますのでご覧ください。