2010-11-19 8 views
5

私はネストされたリストがあります: {{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

答えて

9

Map関数を使用すると、リストの各要素に関数が適用されます。

つまり、Map[f, {1, 2, 3}]{f[1], f[2], f[3]}です。

この場合、を使用できます。 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}} 
0

を注文も

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、ヌル}

{1.02087、ヌル}

注文は、私は質問が実際に何を意味するのかを取得couldntの位置

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

alt text

+0

はい、それです。地図は私が心に留めていたものです。どうもありがとうございます。 – Ron