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)