Pythonのenumerate()
関数は、シーケンス(リストやタプルなど)を列挙する際に、各要素とそのインデックスを同時に取得することができます。また、リスト内包表記と組み合わせることで、より高度な操作を行うことが可能になります。
以下に、enumerate()
とif
文を使ったリスト内包表記の一例を示します。
my_list = [0, 1, 2]
[i for i, w in enumerate(my_list) if w != 1]
このコードは、my_list
の各要素w
に対して、w
が1でない場合に限り、そのインデックスi
をリストに追加します。結果として得られるリストは[0, 2]
となります。
このように、enumerate()
とif
文を使ったリスト内包表記は、条件に基づいて特定のインデックスを選択的に取得する際に非常に便利です。
ただし、注意点として、この方法ではenumerate()
が先に実行され、その後でif
文によるフィルタリングが行われるため、インデックスは元のシーケンスに対するものとなります。つまり、フィルタリングによって一部の要素が除外されても、そのインデックスは元のシーケンスに基づいたものが使用されます。
以上、Pythonのenumerate()
とif
文を使ったリスト内包表記について解説しました。この組み合わせを理解し、活用することで、Pythonプログラミングの幅がさらに広がります。