Рубрики
Без рубрики

Определение функции Python One

Функция лямбда позволяет определить функцию в одной строке. Он начинается с ключевого слова лямбда, а затем разделенный запятыми списком нулевых или более аргументов, а затем толстой кишкой и возвращаемой экспрессией. Например, lambda x, y: x + y рассчитывает сумму двух значений аргумента x + y в одной строке … Определение функции Python одна строка Подробнее »

Автор оригинала: Chris.

Функция лямбда позволяет определить функцию в одной строке. Начинается с ключевого слова лямбда , с последующим запятым списком нуля или более аргументов, а затем толстой кишки и возвращаемой экспрессией. Например, лямбда х, у: x + y рассчитывает сумму двух ценностей аргумента X + Y. в одной строке кода Python.

Проблема : Как определить функцию в одной строке Python Code?

Пример Скажем, вы получили следующую функцию в трех строках. Как сжать их в одну строку кода Python?

def say_hi(*friends):
    for friend in friends:
        print('hi', friend)

friends = ['Alice', 'Bob', 'Ann']
say_hi(*friends)

Код определяет функцию скажи привет который принимает имен в качестве ввода – имена ваших друзей-и печатных «Привет х» Для каждого элемента х в вашем итерателе.

Вывод:

'''
hi Alice
hi Bob
hi Ann
'''

Давайте погрузимся в разные методы для достижения этого! Во-первых, вот быстрое интерактивное обзор для тестирования воды:

Упражнение : Запустите код – это выходная то же самое для всех четырех методов?

Далее вы узнаете о каждом методе более подробно!

Метод 1: Лямбда функция

Вы можете использовать простую ламбда для выполнения этого.

Функция лямбда – это анонимная функция в Python. Начинается с ключевого слова лямбда , с последующим запятым списком нуля или более аргументов, а затем толстой кишки и возвращаемой экспрессией. Например, лямбда х, у, z: x + y + z будет рассчитать сумму трех ценностей аргумента х + y + z Отказ

friends = ['Alice', 'Bob', 'Ann']

# Method 1: Lambda Function
hi = lambda lst: [print('hi', x) for x in lst]

В этом примере вы хотите распечатать строку для каждого элемента в Iterable – но функция Lambda возвращает только объект. Таким образом, мы возвращаем бкладский объект: список Нет объекты. Единственная цель создания этого списка – это выполнить функцию печати () несколько раз, для каждого элемента в друзья список.

Вы получаете следующий вывод:

hi(friends)
'''
hi Alice
hi Bob
hi Ann
'''

Метод 2: определение функции

Аналогичная идея используется в этом примере одноклассника – но вместо использования функции лямбда мы определяем регулярную функцию и просто пропустите новую строку. Это возможно, если функционное тело имеет только одно выражение:

friends = ['Alice', 'Bob', 'Ann']

# Method 2: Function Definition
def hi(lst): [print('hi', x) for x in lst]

Вывод такой же, как и раньше:

hi(friends)
'''
hi Alice
hi Bob
hi Ann
'''

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

Способ 3: exec ()

Третий метод использует EXEC () функция. Это подход Brute-Force к Односилиризация любых многопроводов Действительно

Чтобы сделать Python One-LiLER из любого многострочного сценария Python, замените новые линии новой линейной символом '\ N' и пройти результат в EXEC (...) функция. Вы можете запустить этот скрипт снаружи (командная строка, оболочка, терминал) с помощью команды Python -c "Exec (...)" .

Мы можем применить этот метод к первому примеру фрагмент кода (многострочная функция определения) и переименовать переменные, чтобы сделать его более лаконичным:

friends = ['Alice', 'Bob', 'Ann']

# Method 3: exec()
exec("def hi(*lst):\n    for x in lst:\n        print('hi', x)\nhi(*friends)")

Если вы запускаете код, вы увидите тот же выход, что и раньше:

hi(friends)
'''
hi Alice
hi Bob
hi Ann
'''

Это очень сложно читать – наш мозг не может легко понять пробелы и новые символы Newline. Но я все еще хотел включить этот метод здесь, потому что он показывает, как вы или кого-либо еще можете сжать сложные алгоритмы в одной строке кода Python!

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

Python One-Liners Книга

Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.

Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.

Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:

Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку

К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.

Получите свой Python One-Liners сейчас !!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/python-one-line-function-definition/”