ホームページ  >  記事  >  バックエンド開発  >  Python でインデックスによって複数のリスト要素に効率的にアクセスする方法は?

Python でインデックスによって複数のリスト要素に効率的にアクセスする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-21 04:24:17440ブラウズ

How to Efficiently Access Multiple List Elements by Index in Python?

インデックスによる複数のリスト要素へのアクセス: 効率的なソリューションの探索

Python では、インデックスに基づいてリストから特定の要素を選択することが一般的な要件となる場合があります。最近提起された質問はこのシナリオに対処し、整数のリスト a とインデックスのリスト b を提示しました。目標は、b のインデックスに対応する a の要素を含む新しいリスト c を作成することでした。

提供されたソリューションでは、b のインデックスを反復処理し、a から適切な要素を選択するリスト内包表記を利用しました。

a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
c = [a[i] for i in b]

このアプローチは完全に有効ですが、目的を達成するためのより効率的な方法は存在するのかという疑問が生じました。 result.

Operator.itemgetter

代替ソリューションの 1 つは、Python のオペレーター モジュールからのoperator.itemgetter 関数の使用を伴います:

from operator import itemgetter 
a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
print(itemgetter(*b)(a))

Numpy 配列インデックス作成

パフォーマンスが重要な場合、NumPy は最適化された配列処理機能を提供します。

import numpy as np
a = np.array([-2, 1, 5, 3, 8, 5, 6])
b = [1, 2, 5]
print(list(a[b]))

ソリューションの評価

特に、リスト内包表記を使用した元のソリューションは依然として実行可能なオプションです。簡潔でわかりやすいです。 itemgetter メソッドと NumPy メソッドは潜在的なパフォーマンス上の利点をもたらしますが、小さなリストや速度がそれほど重要ではない状況では過剰になる可能性があります。

最終的に、どのメソッドを使用するかの選択は、サイズなどの要因によって決まります。リストとアプリケーションの特定のパフォーマンス要件の説明。

以上がPython でインデックスによって複数のリスト要素に効率的にアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。