Упрощение Python кода с помощью знакомых инструментов

В этой статье мы рассмотрим один из приёмов упрощения Python кода с помощью известного вам инструмента – функции enumerate().

Python кодаБольшинство людей, выучив что-то новое, добавляют знания в свою “копилку полезной информации”. Зачастую они на 100% уверены, что эта информация точно пригодится, но после никак не могут найти ей практическое применение.

Нередко программисты, начинающие изучать Python, сталкиваются с проблемой, когда необходимо реализовать словарь, в котором значение сопоставляется с индексом: {'Bob' : 0} и т. п.

Чтобы внести немного ясности, вот что нужно сделать:

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

Вот как выглядит обычная реализация:

Код неплохой, однако можем ли мы сделать его лучше?

Упрощения Python кода с помощью enumerate(): реализация

Упрощение Python кода с помощью знакомых инструментов

Это именно та ситуация, в которой оказывается большинство людей после изучения нового материала. Вы интуитивно понимаете, что существует способ реализации с использованием enumerate(), но понятия не имеете, как это сделать.

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

Уже лучше, но range(len(...)) всё ещё выбивается из общей картины. Давайте попробуем поиграть с enumerate():

Итак, мы можем использовать enumerate() вкупе с индексом в списке. Давайте попробуем превратить это в словарь:

В целом, это именно то, к чему мы и стремились, но «в обратном порядке”. Вместо сопоставления ключа к индексу, мы сопоставляем индекс к ключу. Как мы можем это изменить?

Отлично, мы добились своего!

Как можно заметить, действительно существует способ, который смог бы “почистить” код с помощью enumerate().

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

Оригинал

proglib.io

Добавить комментарий

Ваш e-mail не будет опубликован.

девять + 3 =