ホームページ >バックエンド開発 >Python チュートリアル >インデックスに基づいてリストから要素を効率的に抽出するにはどうすればよいですか?

インデックスに基づいてリストから要素を効率的に抽出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-16 04:16:03965ブラウズ

How to Efficiently Extract Elements from a List Based on Indices?

インデックスによる複数のリスト要素へのアクセス

インデックスに基づいてリストから特定の要素を抽出するには、さまざまな方法が利用できます。リスト [-2, 1, 5, 3, 8, 5, 6] からインデックス 1、2、および 5 を持つ要素を抽出する例を考えてみましょう。

リスト内包表記の使用

質問で示されているように、リスト内包表記は効果的に使用できます。

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

このアプローチは、インデックス リスト b を効率的に反復し、リスト a から対応する要素を抽出します。

operator.itemgetter の使用

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 の方が適している可能性があります。

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

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