/
Carton
/
python-course-tasks
Обзор
Документация
Войти
/
Carton
/
python-course-tasks
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
task_05_02_12/main.py
93 строки
4 KB
Yuri Petrov
+ перенос заданий в отдельный репозиторий
02 июл 2020, 02:05
02 июл 2020, 02:05
5312992
Код
Авторство
О чём код?
# Программирование на языке высокого уровня (Python). # https://www.yuripetrov.ru/edu/python # Задание task_05_02_12. # # Выполнил: Фамилия И.О. # Группа: !!! # E-mail: !!! # В данной задаче ввод с клавиатуры не нужен. # # Используйте пример данных ниже, при необходимости измените его для # проверки правильности решения data = [ {1: 'м', 2: 'м', 3: 'м', 4: 'ж'}, {1: 'ж', 2: 'м', 3: 'ж', 4: 'ж'}, {1: 'ж', 2: 'ж', 3: 'ж', 4: 'ж'}, {1: 'м', 2: 'м', 3: 'м', 4: 'м'}, {1: None, 2: None, 3: None, 4: None}, {1: 'м', 2: None, 3: None, 4: 'ж'}, {1: None, 2: None, 3: None, 4: None}, {1: 'м', 2: 'м', 3: None, 4: 'м'}, {1: 'ж', 2: None, 3: None, 4: 'ж'} ] def vacant_compartments(data): """Вернуть список полностью свободных купе. Нумерация купе идет с 1. Параметры: - data (list of dict): данные о занятости мест в вагоне. Результат: list of int.""" # Удалите комментарий и допишите код def vacant_seats(data, compartments_condition=None, seat_condition=None): """Вернуть список свободных мест при соблюдении условий 'compartments_condition' и 'seat_condition'. Нумерация купе и мест идет с 1. Параметры: - data (list of dict): данные о занятости мест в вагоне; - compartments_condition (function): функция c 1 параметром (словарь - купе), возвращающая True/False; - seat_condition (function): функция c 2 параметрами (номер места, значение), возвращающая True/False. Результат: list of tuple: список кортежей вида (номер купе, номер места).""" # Удалите комментарий и допишите код def is_same_sex_and_vacant(compartment, sex): """Вернуть True, если в купе 'compartment' есть свободные места, а остальные пассажиры только пола 'sex'. Параметры: - compartment (dict): данные о купе; - sex (str): пол ("м" или "ж"). Результат: bool.""" # Удалите комментарий и допишите код # список полностью свободных купе # Удалите комментарий и допишите код # список свободных мест в вагоне print(vacant_seats(data)) # список свободных нижних мест print(vacant_seats(data, seat_condition=lambda seat, value: seat % 2 != 0)) # список свободных верхних мест # Удалите комментарий и допишите код # список свободных мест в купе с исключительно мужской компанией print(vacant_seats(data, lambda x: is_same_sex_and_vacant(x, "м"))) # список свободных мест в купе с исключительно женской компанией # Удалите комментарий и допишите код # -------------- # Пример вывода: # # [5, 7] # [(5, 1), (5, 2), (5, 3), (5, 4), (6, 2), (6, 3), (7, 1), (7, 2), (7, 3), # (7, 4), (8, 3), (9, 2), (9, 3)] # [(5, 1), (5, 3), (6, 3), (7, 1), (7, 3), (8, 3), (9, 3)] # [(5, 2), (5, 4), (6, 2), (7, 2), (7, 4), (9, 2)] # [(8, 3)] # [(9, 2), (9, 3)]