行をアルファベット順 (およびその他の順序) に並べ替える方法
リストを順番に並べ替えるということは、最も単純な作業のように思えますが、数字のリストを並べ替えて 1、2、10 ではなく 1、10、2 が得られるか、名前を並べ替えると大文字のものがすべて先頭に固まってしまうまでは別の話です。並べ替えには、理解する価値のあるいくつかの癖があり、単純な A から Z までの順序を超えて、実際に役立つことが判明した順序がいくつかあります。ここに実践的なガイドがあります。
そもそもなぜリストを並べ替えるのか
ソートされたリストは、スキャン、比較、および使用が容易です。名前の名簿をアルファベット順に並べたり、用語集を並べたり、ファイル名のリストを並べたり、参考文献を並べたりします。読みやすさを超えて、並べ替えによって問題が可視化され、並べ替えられたリストによって、エントリがどこに欠けているか、重複が隣り合っている場所、何かが間違っている場所が明確になります。順序によって構造がごちゃ混ぜになってしまうため、並べ替えは、リストの重複を除外したり確認したりする前の最初のステップとなることがよくあります。
主な注文内容
A から Z は標準のアルファベット順の並べ替えです。 Z から A にすると逆になり、最新のアイテムまたは最も優先度の高いアイテムを最初に配置するのに便利です。最短から最長、またはその逆の長さに基づいて並べ替えると、含まれる文字数によって行がグループ化され、外れ値を見つけたり、サイズごとに整理したりするのに便利です。また、reverse は再ソートを行わずに現在の順序を単純に反転します。これは Z-to-A とは異なります。リストをそのまま上下逆にするだけで、最新のエントリが先頭に来るように時系列のログを反転するのに最適です。
大文字と小文字を区別しない並べ替え
ここでよくある驚きをご紹介します。単純なアルファベット順の並べ替えでは、多くの場合、すべての大文字の単語がすべての小文字の単語の前に配置されます。これは、基本的な文字順序で大文字が小文字よりも前に来るためです。したがって、「リンゴ、リンゴ、バナナ、バナナ」は、リンゴとバナナをグループ化するのではなく、「リンゴ、バナナ、リンゴ、バナナ」に並べ替えられます。大文字と小文字を区別しない並べ替えは、「Apple」と「apple」を同等の順序として扱うことでこの問題を修正します。これは、ほとんどの人が実際にアルファベット順のリストの読み取りを期待する方法です。大文字と小文字に関係なく、関連するエントリをまとめて保持します。
数字が奇妙に並べ替えられる理由
数値のリストをテキストとして並べ替えると、1、10、100、2、20、3 という間違った順序のように見えます。これはバグではありません。テキストの並べ替えでは文字ごとに比較するため、「apple」が「b」の前に来るのと同じように、「10」が「2」の前に来ます。最初の文字 1 は 2 より小さいため、1 で始まるものが最初に並べ替えられます。真の数値ソートの 1 つのコツは、テキストとしてソートする前に、すべての数値を同じ幅で先頭のゼロ (01、02、10) でパディングすることです。これにより、テキストの順序が数値の順序と一致します。
シャッフル: ソートの逆
場合によっては、順序の逆、つまりランダムな配置が必要になることがあります。シャッフルは行の順序をランダム化します。これは、リストからランダムな勝者を抽出したり、クイズの質問の順序をランダム化したり、ランダム化されたテスト データを作成したり、不要なパターンを持つリストを分割したりする場合に役立ちます。これは同じツール ファミリであり、行の順序を変更し、異なる目標を目指しています。ローカルで実行されるため、機密リストであってもシャッフルを通じて非公開のままになります。