インデックスがわかっているので、指定されたリストからいくつかの要素を選択する必要があります。指定されたリスト [-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]
しかし、実際のところ、現在の解決策は問題ありません。おそらく、すべての解決策の中で最もすっきりしたものでしょう。