对mathematica中其他部分的更改进行排序

Qia*_* Li 4 wolfram-mathematica list-manipulation

我只是想知道:

给定一个列表{{{3,1,2},{4,2,5}},{{7,1},{2,4}}},我想对第一个组件进行排序,然后像第一个组件那样更改第二个组件.期望的结果是{{{1,2,3},{2,5,4}},{{1,7},{4,2}}}.

我怎样才能做到这一点?非常感谢您的帮助.

Mic*_*lat 10

这是工作安全 - 确保一个班轮=)

In[16]:= list={{{3,1,2},{4,2,5}},{{7,1},{2,4}}};

In[17]:= {#[[Ordering[#]]],#2[[Ordering[#]]]}& @@@ list
Out[17]= {{{1,2,3},{2,5,4}},{{1,7},{4,2}}}
Run Code Online (Sandbox Code Playgroud)

对于发生的事情,这可能会更清楚一些:

sorter[{a_, b_}] :=
 Module[{order = Ordering[a]},
  {a[[order]], b[[order]]}
  ]

In[19]:= sorter /@ list

Out[19]= {{{1, 2, 3}, {2, 5, 4}}, {{1, 7}, {4, 2}}}
Run Code Online (Sandbox Code Playgroud)