1. ホーム
  2. パイソン

[解決済み】リストのインデックスを把握して複数の要素にアクセスする

2022-04-17 19:58:07

質問

与えられたリストから、インデックスがわかっている要素を選びたいのですが、どうすればいいですか?例えば、与えられたリスト [-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] のような良い方法はないでしょうか?

どのように解決するのですか?

を使用することができます。 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)

または numpy :

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]


でも、本当は今のソリューションでいいんですよ。この中で一番すっきりしているのではないでしょうか。