与えられた位置のサブリスト

Sep 01 2020

検討する

r = Array[Total[{##}] &, {3, 3}]
(*{{2, 3, 4}, {3, 4, 5}, {4, 5, 6}}*)
pos = {{1, 1}, {2, 2}};

この

r[[pos]]

エラーを与える

Part::pkspec1: The expression {{1,1},{2,2}} cannot be used as a part specification.

期待される代わりに

{2,4}

言い換えれば、特定の位置でリストの要素を選択する方法は?

回答

5 kglr Sep 01 2020 at 06:40

次のことができます上:Apply (@@@) Partpos

r[[##]] & @@@ pos
 {2, 4}

ExtractまたはIndexedまたはを使用することもできますQuery:

Extract[pos] @ r
 {2, 4}
Indexed[r, #] & /@ pos
 {2, 4}
Query[##] @ r & @@@ pos
 {2, 4}