インデックスがわかっているリストの複数の要素にアクセスする [重複] 質問する

インデックスがわかっているリストの複数の要素にアクセスする [重複] 質問する

インデックスがわかっているので、指定されたリストからいくつかの要素を選択する必要があります。指定されたリスト [-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]

もっと良い方法はありますか? c = a[b] のようなものですか?

ベストアンサー1

使用できますoperator.itemgetter:

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

または、ナンピー:

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

しかし、実際のところ、現在の解決策は問題ありません。おそらく、すべての解決策の中で最もすっきりしたものでしょう。

おすすめ記事