Привет! Сегодня я расскажу о том, как написать однострочный генератор словаря, который принимает на вход три списка одинаковой длины⁚ имена, ставку и премию. В результате работы этого генератора мы получим словарь, где имя будет служить ключом, а сумма премии – значением.Давайте разберемся с самим кодом. Входные данные представлены тремя списками⁚ names, salary и bonus, содержащими соответственно имена сотрудников, их зарплаты и проценты премии в виде строк.1. Сначала нам потребуется использовать функцию zip для объединения трех списков в один, чтобы мы могли работать с каждым элементом нашего словаря⁚
python
result {name⁚ salary * float(bonus[⁚-1]) / 100 for name, salary, bonus in zip(names, salary, bonus)}
2. Теперь٫ давайте разберемся٫ как код работает⁚
— Перебираем каждый элемент из трех списков одновременно с помощью zip.
— Используем каждое имя как ключ для словаря и рассчитываем сумму премии, умножая ставку на процент премии (bonus[⁚-1]).
— Преобразуем значение процента в число, удалив символ ‘%’ с помощью [⁚-1] и преобразовав оставшуюся строку в число с помощью функции float.
— Результат присваиваем ключу имени в словаре.
3. Итак, мы получаем словарь result, где имена сотрудников служат ключами, а суммы премии – значениями.
Пример использования⁚
python
names [″Alice″, ″Bob″, ″Charlie″]
salary [5000, 6000, 7000]
bonus [″10%″, ″5%″, ″15%″]
result {name⁚ salary * float(bonus[⁚-1]) / 100 for name, salary, bonus in zip(names, salary, bonus)}
print(result)
В результате выполнения этого кода вы получите следующий словарь⁚
python
{‘Alice’⁚ 500.0, ‘Bob’⁚ 300.0, ‘Charlie’⁚ 1050.0}
Таким образом, однострочный генератор словаря поможет вам легко создать словарь с именем в качестве ключа и суммой премии в качестве значения, используя списки с именами, ставками и процентами премии.