Как сортировать строки по алфавиту (и в других порядках)
Сортировка списка по порядку кажется самой простой задачей, пока вы не отсортируете список чисел и не получите 1, 10, 2 вместо 1, 2, 10, или вы не отсортируете имена, и все заглавные буквы не сгруппируются вверху. У сортировки есть несколько особенностей, которые стоит понять, а также несколько порядков, выходящих за рамки простого от А до Я, которые оказываются действительно полезными. Вот практическое руководство.
Зачем вообще сортировать список
Отсортированный список легче просматривать, сравнивать и использовать. Расположите список имен в алфавитном порядке, закажите глоссарий терминов, составьте список имен файлов или наведите порядок в библиографии. Помимо читаемости, сортировка делает проблемы видимыми, а отсортированный список делает очевидным, где запись отсутствует, где дубликаты расположены рядом друг с другом и где что-то не на своем месте. Сортировка часто является первым шагом перед устранением дублирования или просмотром списка, поскольку порядок приводит к беспорядку в структуре.
Основные заказы
От А до Я — стандартная алфавитная сортировка. От Z до A меняет порядок, что полезно для размещения на первом месте самых последних элементов или элементов с наивысшим приоритетом. Сортировка по длине (от самой короткой к самой длинной или наоборот) группирует строки по количеству содержащихся в них символов, что удобно для обнаружения выбросов или организации по размеру. А обратный просто переворачивает текущий порядок без повторной сортировки, в отличие от Z-to-A: он просто переворачивает список как есть, что идеально подходит для переворачивания хронологического журнала, чтобы самая новая запись находилась сверху.
Сортировка без учета регистра
Вот общий сюрприз. При простой алфавитной сортировке все слова, написанные с заглавной буквы, часто помещаются перед всеми словами в нижнем регистре, поскольку в базовом порядке символов прописные буквы идут перед строчными. Таким образом, «Яблоко, яблоко, банан, банан» сортируется до «Яблоко, банан, яблоко, банан» вместо группировки яблок и бананов вместе. Сортировка без учета регистра исправляет это, рассматривая «Apple» и «apple» как эквиваленты для упорядочения, и именно так большинство людей на самом деле ожидают чтения алфавитного списка. Он сохраняет связанные записи вместе независимо от регистра.
Почему числа сортируются странно
Когда вы сортируете список чисел в виде текста, вы получаете что-то похожее на неправильный порядок: 1, 10, 100, 2, 20, 3. Это не ошибка, это связано с тем, что сортировка текста сравнивает посимвольно, поэтому «10» предшествует «2», точно так же, как «яблоко» предшествует «b». Первый символ 1 меньше 2, поэтому все, что начинается с 1, сортируется в первую очередь. Для настоящей числовой сортировки один из приемов заключается в том, чтобы дополнить все числа до одинаковой ширины ведущими нулями (01, 02, 10) перед сортировкой как текст, что приводит к тому, что порядок текста соответствует порядку чисел.
Перетасовка: сортировка обратная
Иногда вам хочется противоположного порядка, случайного расположения. Перетасовка меняет порядок строк, что полезно для выбора случайного победителя из списка, рандомизации порядка вопросов викторины, создания рандомизированных тестовых данных или разделения списка, имеющего нежелательный шаблон. Это то же самое семейство инструментов, изменяющее порядок линий и направленное на другую цель. Поскольку он работает локально, даже конфиденциальный список остается конфиденциальным при перетасовке.