嵌套列表

嵌套列表

问题描述:

内部排序名单我有一个嵌套列表: {{9, 8, 7}, {8, 7, 6}, {7, 6, 5}, {6, 5, 4}, {5, 4, 3}, {4, 3, 2}, {3, 2, 1}}嵌套列表

我需要在列表中的列表进行排序,以创建:

{{7, 8, 9}, {6, 7, 8}, {5, 6, 7}, {4, 5, 6}, {3, 4, 5}, {2, 3, 4}, (1, 2, 3}}

我该怎么办呢?

+0

我不可能得到什么的问题实际上意味着排序是有用的。你能解释一下你面临的问题吗? – vinothkr 2010-11-19 06:00:27

您需要Map函数,该函数将函数应用于列表的每个元素。

也就是,Map[f, {1, 2, 3}]给出{f[1], f[2], f[3]}

在这种情况下,您可以使用Map[Sort, list]Map也有中缀运算符,/@

In[1]:= Map[Sort, {{9, 8, 7}, {8, 7, 6}, {7, 6, 5}, {6, 5, 4}, 
    {5, 4, 3}, {4, 3, 2}, {3, 2, 1}}] 

Out[1]= {{7, 8, 9}, {6, 7, 8}, {5, 6, 7}, {4, 5, 6}, 
    {3, 4, 5}, {2, 3, 4}, {1, 2, 3}} 

In[2]:= Sort /@ {{9, 8, 7}, {8, 7, 6}, {7, 6, 5}, {6, 5, 4}, 
    {5, 4, 3}, {4, 3, 2}, {3, 2, 1}} 

Out[2]= {{7, 8, 9}, {6, 7, 8}, {5, 6, 7}, {4, 5, 6}, 
    {3, 4, 5}, {2, 3, 4}, {1, 2, 3}} 

这可能是要知道有用的订购也将工作

lst = {{9, 8, 7}, {8, 7, 6}, {7, 6, 5}, {6, 5, 4}, {5, 4, 3}, {4, 3, 
    2}, {3, 2, 1}}; 
Map[#[[Ordering[#]]] &, lst] 

但对于这种类型的实例的方法比地图/排序

lst2 = RandomInteger[100, {10^5, 3}]; 
Map[Sort, lst2]; // Timing 
Map[#[[Ordering[#]]] &, lst2]; // Timing 

{0.175955,NULL}

{1.02087,空}

订购可以通过

位置
lst3 = {{a1, 4, c1}, {a2, 3, c2}, {b3, 1, d3}, {e4, 2, f4}}; 
lst3[[Ordering[lst3[[All, -2]]]]] // MatrixForm 

alt text

+0

是的,就是这样,地图就是我想到的。非常感谢。 – Ron 2010-11-21 04:25:33