Сортировка массива
Сортировка строк
Цель: Научиться сортировать массивы строк разными способами.
Как вы знаете, сортировать можно не только числа, но и слова. Меньшим считается слово, которое стоит в словаре раньше. То есть, например, «ласточка» меньше чем «пчела», а «корова» меньше чем «кот».
Пусть у вас есть массив words = ["жираф", "бабочка", "лошадь", "лев", "корова", "верблюд", "кот", "тигр", "ящерица", "дракон", "змея", "волк", "медведь", "слон", "бык", "лиса", "мышь"]
Выполните указанные в задании сортировки для данного массива.
Вопросы кейса:
Вопрос 1
Отсортируйте массив в алфавитном порядке. Выполните сортировку методом пузырька.
Вопрос 2
Отсортируйте массив по длине слов, от меньшего к большему. Выполните с помощью сортировки выбором.
Сложная сортировка
В предыдущем задании мы сортировали слова либо в алфавитном порядке, либо по длине. Но в повседневной жизни мы обычно используем более сложные сортировки. Например, если мы составляем список класса, то в случае, когда есть однофамильцы, раньше в списке идет тот, у кого имя идет раньше по алфавиту. А если еще и имена одинаковые, то мы смотрим на отчество.
Давайте вернемся к нашему списку животных и отсортируем их не просто по длине, но и с учетом того, что если слова равные по длине, будет располагаться их в алфавитном порядке.
Откройте программу, где вы обрабатывали список words и скопируйте его оттуда в новый файл.
При поиске минимума проверяйте два случая:
1) текущее слово короче минимального;
2) текущее слово равно по длине минимальному, но стоит раньше в алфавите.
Выведите результат на экран в столбик.
Методы и функции строк
Для выполнения домашнего задания вам понадобятся методы и функции для работы со строками. Проверьте, насколько хорошо вы их помните.
st.split(c)
Метод split разбивает строку по разделителю с. Если разделитель не указан, разбиение происходит по пробельным символам (пробелы, табуляции, переходы строк). В результате работы метода получается массив.
st.lower()
Преобразует все символы строки в строчные.
st.upper()
Преобразует все символы строки в заглавные.
st.capitalize()
Делает первый символ слова заглавным, остальные строчными.
st.find(s)
Находит номер первого символа первого вхождения подстроки s в строку st.
st.rfind(s)
Находит номер первого символа последнего вхождения подстроки s в строку st.
len(st)
Длина строки.
Список класса
Цель: Научиться сортировать сложные данные.
Классный руководитель дал вам задание внести всех ребят в базу данных (список), а затем для удобства отсортировать её по алфавиту.
Вопросы кейса:
Вопрос 1
Организуйте ввод массива. Вводятся данные: фамилия, имя, отчество в именительном падеже. Данные заносятся в массив. Признаком окончания ввода является пустая строка.
Вопрос 2
Проверьте, что все данные введены корректно, то есть фамилия, имя и отчество записаны с заглавной буквы (остальные строчные). При необходимости исправьте.
Вопрос 3
Отсортируйте учащихся по алфавиту.