wolfram-mathematica - 在 mathematica 中对另一部分的更改进行排序

标签 wolfram-mathematica list-manipulation

我只是想知道:

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

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

最佳答案

我建议:

#[[ All, Ordering@#[[1]] ]] & /@ list

这比迈克尔的短,效率几乎是其两倍。
micSort = {#[[Ordering[#]]], #2[[Ordering[#]]]} & @@@ # &;

wizSort = #[[All, Ordering@#[[1]]]] & /@ # &;

a = RandomInteger[100, {2400, 2, 15}];

micSort@a === wizSort@a
First@Timing@Do[#@a, {25}] & /@ {micSort, wizSort}

Out[1]= True

Out[2]= {0.453, 0.282}

关于wolfram-mathematica - 在 mathematica 中对另一部分的更改进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5242065/

相关文章:

scipy - python/scipy、numpy、sympy 中是否有与 Mathematicas RootApproximant 函数等效的函数?

wolfram-mathematica - 如何合并两个列表以绘制坐标对?

haskell - Ravi Sethi 在 Haskell 中的小被子语言

wolfram-mathematica - 如何计算 BezierFunction[] 的 x 分量的倒数?

wolfram-mathematica - 如何修改OUTPUT字体类型?

python - 是否有内置的 python 来从多个列表创建元组?

r - 转置嵌套列表

scala - 在 Scala 中映射子列表

python - 如何在python中从一个列表中创建多个列表

wolfram-mathematica - 如何独立于其他人对齐网格中的第一列和第一行?