Pythonのリスト内包表記は、コードを簡潔に書くための強力なツールです。しかし、リスト内包表記を使用しているときに要素のインデックスにアクセスする方法は明らかではないかもしれません。この記事では、リスト内包表記でインデックスにアクセスする方法を説明します。
Pythonのenumerate
関数を使用すると、リスト内包表記でインデックスにアクセスできます。enumerate
関数は、リストの各要素とそのインデックスをペアとして返します。これをリスト内包表記で使用すると、次のようになります。
list2 = [x for ind, x in enumerate(list1) if 4 > ind > 0]
このコードでは、enumerate(list1)
が(index, value)
のペアを生成し、それぞれind
とx
に割り当てられます。その後、if 4 > ind > 0
の条件を満たす要素だけが新しいリストlist2
に追加されます。
ただし、この方法はインデックスが必要な場合にのみ使用します。インデックスが不要な場合や、リストの一部(スライス)だけを処理する場合は、enumerate
を使用するよりもスライスを使用した方がコードが明確になります。
list2 = [x*2 for x in list1[1:4]]
このコードでは、list1[1:4]
のスライス(インデックス1から3までの要素)を取得し、その各要素を2倍して新しいリストlist2
に追加しています。
以上がPythonのリスト内包表記でインデックスにアクセスする方法です。このテクニックを使えば、Pythonのリスト内包表記をさらに強力に、そして効率的に使用することができます。