Шаг 20.
Однострочники Python.Трюки Python. Поиск самых высокооплачиваемых работников с помощью спискового включения. Код и принцип работы

    На этом шаге мы закончим изучение этого вопроса.

Код

    Рассмотрим уже обсуждавшуюся на прошлом шаге задачу с зарплатами сотрудников: по ассоциативному массиву со строковыми ключами и целочисленными значениями создать новый список из кортежей (ключ, значение), таких, что соответствующее ключу значение больше или равно 100 000. Соответствующий код приведен в примере 2.1.


Пример 2.1. Однострочное решение для спискового включения
## Данные
employees = {'Alice': 100000,
             'Bob': 99817,
             'Carol': 122908,
             'Frank': 88123,
             'Eve': 93121}

## Однострочник
top_earners = [(k, v) for k, v in employees.items() if v >= 100000]

## Результат
print(top_earners)
Архив с файлом можно взять здесь.

    Каковы же будут результаты выполнения этого фрагмента кода?

Принцип работы

    Рассмотрим этот однострочник подробнее.

top_earners = [(1)(k, v) (2)for k, v in employees.items() if v >= 100000]

    Выражение (1): создает простой кортеж (ключ, значение) для переменных контекста k и v.

    Контекст (2): метод ассоциативного массива dict.items() обеспечивает проход переменной контекста k в цикле по всем ключам ассоциативного массива, а переменной контекста v - в цикле по соответствующим переменной контекста k значениям, но только если значение переменной контекста v равно или больше 100 000, в соответствии с условием if.

    Результат выполнения этого однострочника выглядит следующим образом:

print(top_earners)
# [('Alice', 100000), ('Carol', 122908)]

    В этой простой однострочной программе мы познакомились с важным понятием спискового включения. Такие включения используются во многих примерах, поэтому хорошо разберитесь с примерами предыдущего шага.

    На следующем шаге мы рассмотрим поиск информативных слов с помощью спискового включения.




Предыдущий шаг Содержание