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

4
6797
Добавить в избранное

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Оригинал

Статьи по теме:

Интересуетесь программированием на Python?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Комментариев: 4

  1. О боже, автор вы сами это не давно узнали и бах пришла в голову идея написать об этом в блоге?!

    1. Автор здесь: http://prntscr.com/jjtmux 🙂

  2. ILikePythonAndDjango

    Одна функция и такой кликбейт)

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