Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников фирмы. Ввод
заканчивается пустой строкой. Отсортировать строки в
алфавитном порядке по фамилии.
Пример:
Введите ФИО:
А.Г. Урядников
Б.В. Тепловозов
В.Д. Арбузов

Список в алфавитном порядке:
В.Д. Арбузов
Б.В. Тепловозов
А.Г. Урядников
C++

olgafajzulloev olgafajzulloev    1   10.04.2021 17:22    40

Ответы
Ксюшка0328 Ксюшка0328  10.01.2024 15:33
Добрый день, дорогой ученик!

Чтобы решить данную задачу, нам потребуется использовать сортировку строк. В Python мы можем использовать метод сортировки списка `sort()`, и он должен быть нам весьма полезен.

Давай-ка начнем с ввода строк от пользователя. Для этого мы можем использовать цикл `while`, который будет выполняться до тех пор, пока пользователь не введет пустую строку. В каждой итерации цикла мы будем запрашивать у пользователя ФИО и сохранять его в списке. В итоге у нас получится список, содержащий все ФИО работников фирмы.

```python
# Создаем пустой список для хранения ФИО
fio_list = []

# Запрашиваем ФИО от пользователя
fio = input("Введите ФИО: ")

# Цикл для ввода ФИО пользователем (пока не будет введена пустая строка)
while fio != "":
fio_list.append(fio)
fio = input("Введите ФИО: ")
```

Теперь у нас есть список `fio_list`, содержащий все введенные ФИО. Для того чтобы отсортировать его в алфавитном порядке по фамилии, мы можем использовать метод `sort()` для списка. Однако, чтобы правильно сортировать строки с ФИО, нам потребуется задать необычный ключ сортировки.

У каждой строки ФИО есть формат "Инициалы Фамилия". Мы хотим отсортировать по фамилии, поэтому нужно указать методу `sort()` сортировать по отдельной части строки - фамилии. Для этого нам потребуется использовать функцию `lambda`, которая будет принимать строку ФИО и возвращать только фамилию (последнюю часть строки после пробела).

```python
# Сортировка списка по фамилии
fio_list.sort(key=lambda x: x.split()[1])
```

Теперь список `fio_list` отсортирован в алфавитном порядке по фамилии. Осталось только вывести его содержимое.

```python
# Вывод отсортированного списка
print("Список в алфавитном порядке:")
for fio in fio_list:
print(fio)
```

Таким образом, весь код для решения данной задачи выглядит следующим образом:

```python
# Создаем пустой список для хранения ФИО
fio_list = []

# Запрашиваем ФИО от пользователя
fio = input("Введите ФИО: ")

# Цикл для ввода ФИО пользователем (пока не будет введена пустая строка)
while fio != "":
fio_list.append(fio)
fio = input("Введите ФИО: ")

# Сортировка списка по фамилии
fio_list.sort(key=lambda x: x.split()[1])

# Вывод отсортированного списка
print("Список в алфавитном порядке:")
for fio in fio_list:
print(fio)
```

Надеюсь, моё пояснение было понятным и помогло тебе понять, как решить данную задачу. Если у тебя остались вопросы, не стесняйся задавать их! Я всегда готов помочь.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика