Автор: CoolPython
Поговорим о циклах в Python. Вот пример цикла, который мог бы написать человек с C или Jav-бэкграундом:
items = [‘a’, ‘b’, ‘c’]
i = 0
while i < len(items):
print(items[i])
i += 1 Что с ним не так?
А именно:
for item in items:
print(item) Это решение:
О таком и говорят pythonic — когда возможности языка используются, чтобы сделать код лаконичным, читаемым и поддерживаемым.
Но что если вам правда, очень, действительно нужен индекс? Иногда это бывает, и тогда на помощь спешит конструкция enumerate(), которая предоставляет и сам элемент, и его индекс:
for i, item in enumerate(items):
print(i) В общем, если вам в Python цикле нужно делать операции не с индексами, а с самими объектами, то средства языка позволяют писать чистый и менее подверженный ошибкам код. Если индексы все же нужны, выбирайте enumerate(): пользоваться индексами напрямую — это не pythonic.
Закончу цитатой.
«В программировании есть только две сложные вещи: инвалидация кеша, выбор имени переменной, и ошибки на единицу».
(Джефф Этвуд, создатель StackOverflow).
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…