たとえば、同じ長さの 2 つのリストがあります。
a = [[1,2],[2,2],[3,3],[4,2],[5,6]]
b = [1,2,2,3,1]
みたいな機能が欲しい
func(a,b,1) = [[1,2],[5,6]]
func(a,b,2) = [[2,2],[3,3]]
func(b,b,2) = [2,2]
関数が行うことは、a の要素のリストを返すことです。リスト b の同じインデックスの対応する要素は、3 番目の引数に等しくなります。
Matlab では、a(b==1)、a(b==2)、b(b==2) のような簡単なことをします。Pythonでこれを達成する最も効率的な方法は何ですか?