ホームページ > バックエンド開発 > Python チュートリアル > Python リスト内の項目のインデックスを効率的に見つけるにはどうすればよいですか?

Python リスト内の項目のインデックスを効率的に見つけるにはどうすればよいですか?

DDD
リリース: 2024-12-23 00:36:28
オリジナル
377 人が閲覧しました

How Can I Efficiently Find the Index of an Item in a Python List?

リスト内の項目のインデックスを見つける

リストとそのリスト内の項目が与えられた場合、そのインデックスを見つけるのはPython の固有メソッドを使用した簡単なタスク。

解決策: list.index()

リスト クラスの組み込み ".index()" メソッドは、この目的のために調整されています。検索する項目を引数として受け取り、そのゼロから始まるインデックスを返します。

たとえば、リスト ["foo", "bar", "baz"] では、"bar" のインデックスは次のようになります。

>>> ["foo", "bar", "baz"].index("bar")
1</p>
<h3>注意事項</h3>
<p>「.index()」は便利なアプローチですが、いくつかの点が伴います。制限事項:</p>
<p><strong>線形時間計算量:</strong><br>「.index()」メソッドは、一致するものが見つかるまでリストの要素を 1 つずつスキャンします。長いリストでは、これがパフォーマンスのボトルネックになる可能性があります。</p>
<p><strong>最初の一致のみが返されます:</strong><br>同じ項目がリスト内に複数回出現する場合、「.index()」は最初に出現したインデックスのみを返します。</p>
<p><strong>欠落アイテムの例外:</strong><br>指定された項目がリストにない場合、「.index()」は「ValueError」を発生させます。</p>
<h3>代替案</h3>
<p>これらの制限に問題がある可能性がある状況では、次の代替案を検討してください。</p>
<p><strong>リスト内包表記またはジェネレーター式:</strong><br>これらの手法により、項目を検索する際の柔軟性が向上します。インデックス。例:</p>
<pre class="brush:php;toolbar:false">[i for i, e in enumerate([1, 2, 1]) if e == 1]
ログイン後にコピー

「in」演算子と列挙:
この組み合わせにより、項目の存在の確認とインデックスの取得を同時に行うことができます:

for i, e in enumerate([1, 2, 1]):
    if e == 1:
        print(i)
ログイン後にコピー

Byこれらのニュアンスを理解することで、開発者はコード内で Python のリスト インデックス機能を効果的に活用できます。

以上がPython リスト内の項目のインデックスを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート