Я пишу информационный бюллетень для учащихся под названием Mighty Knowledge. Каждый новый выпуск содержит ссылки и основные уроки из самого лучшего контента, включая цитаты, книги, статьи, подкасты и видео. Каждый выбран специально для того, чтобы научиться жить более мудрой, счастливой и полной жизнью. Зарегистрируйтесь здесь.

Python - прекрасный язык. Простой в использовании, но очень выразительный. Но используете ли вы все, что он может предложить?

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

Это самый увлекательный способ учиться: открытие путем исследования и случайности!

Вот 5 наиболее полезных расширенных функций языка программирования Python и, что еще более важно, как их использовать!

(1) Лямбда-функции

Лямбда-функция - это небольшая анонимная функция, анонимная в том смысле, что на самом деле у нее нет имени.

Функции Python обычно определяются в стиле def a_function_name(), но с лямбда-функциями мы вообще не даем им названия. Мы делаем это, потому что цель лямбда-функции - выполнить какое-то простое выражение или операцию без необходимости полного определения функции.

Лямбда-функция может принимать любое количество аргументов, но всегда должна иметь только одно выражение:

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

(2) Карты

Map () - это встроенная функция Python, используемая для применения функции к последовательности элементов, такой как список или словарь. Это очень чистый и, что самое главное, читаемый способ выполнения такой операции.

Посмотрите пример выше! Мы можем применить нашу функцию к одному или нескольким спискам. Фактически, вы можете использовать карту с любой функцией Python, которую только можете придумать, если она совместима с элементами последовательности, с которыми вы работаете.

(3) Фильтрация

Встроенная функция Filter очень похожа на функцию Map в том, что она применяет функцию к последовательности (список, кортеж, словарь). Ключевое отличие состоит в том, что filter () будет возвращать только те элементы, которые примененная функция вернула как True.

Посмотрите на пример ниже для иллюстрации:

Мы не только оценили True или False для каждого элемента списка, но и функция filter () также позаботилась о том, чтобы возвращать только те элементы, которые соответствуют True. Очень удобно обрабатывать два шага проверки выражения и построения списка возврата.

(4) Itertools

Модуль Python Itertools - это набор инструментов для работы с итераторами. Итератор - это тип данных, который можно использовать в цикле for, включая списки, кортежи и словари.

Использование функций в модуле Itertools позволит вам выполнять множество операций итератора, которые обычно требуют многострочных функций и сложного понимания списка. Ознакомьтесь с примерами ниже, чтобы наглядно продемонстрировать волшебство Itertools!

(5) Генераторы

Функции Generator позволяют объявлять функцию, которая ведет себя как итератор, т.е. ее можно использовать в цикле for. Это значительно упрощает ваш код и намного эффективнее использует память, чем простой цикл for.

Рассмотрим пример, в котором мы хотим сложить все числа от 1 до 1000. Первая часть кода ниже показывает, как это можно сделать с помощью цикла for.

Теперь все в порядке, если список маленький, скажем, длиной 1000. Проблема возникает, когда вы хотите сделать это с огромным списком, скажем, 1 миллиардом чисел с плавающей запятой. С помощью цикла for этот массивный список пережевывания памяти создается в памяти - не у всех есть неограниченное количество ОЗУ для хранения таких вещей! Функция range() в Python делает то же самое, она строит список в памяти.

Раздел (2) кода иллюстрирует суммирование списка чисел с помощью генератора Python. Генератор будет создавать элементы и сохранять их в памяти только по мере необходимости, то есть по одному. Это означает, что если вам нужно создать 1 миллиард чисел с плавающей запятой, вы будете хранить их в памяти только по одному! Функция xrange() в Python использует генераторы для построения списков.

Мораль истории: если у вас есть большой диапазон, для которого вы хотите создать список, используйте генератор или функцию xrange. Это особенно верно, если у вас действительно чувствительная к памяти система, такая как мобильные или периферийные вычисления.

При этом, если вы хотите перебирать список несколько раз, и он достаточно мал, чтобы уместиться в памяти, лучше использовать циклы for и range function. Это связано с тем, что генераторы и xrange будут заново генерировать значения списка каждый раз, когда вы обращаетесь к ним, тогда как range является статическим списком, а целые числа уже существуют в памяти для быстрого доступа.

Любите учиться?

Следуйте за мной в твиттере, где я публикую все о новейших и величайших достижениях искусственного интеллекта, технологий и науки! Присоединяйтесь и ко мне в LinkedIn!