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

Расширенные концепции Python

Давайте посмотрим на некоторые более продвинутые концепции Python сегодня. Пока мы уже говорили о некоторых из этих концепций в более ранних руководствах, эта страница

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

Расширенные концепции Python

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

Краткий список продвинутых концепций Python

Без дальнейшего ADO давайте продолжим нашу первую продвинутую концепцию.

1. Ламбда функция

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

Синтаксис:

lambda arguments: expression
  • Как видно в синтаксисе ниже, Lambda функция объявлена с помощью ключевого слова “лямбда”.
  • Затем мы пишем список аргументов, функция лямбда может принимать любое количество аргументов, но он не может быть нулевым. После толстой кишки мы пишем выражение, которое применяет эти аргументы любую практическую операцию. Синтаксически, функция лямбда ограничена только одному выражению, то есть. Он может содержать только одно выражение, а не более того.

Пример:

remainder = lambda number: number%2
print (remainder (25))

Объяснение:

В приведенном выше коде lambda num: число% 2 Это функция лямбда. Номер является аргументом, когда число% 2 является оцененным выражением, и результат возвращается.

Выражение получает входной модуль ввода 2. Мы даем 25 в качестве параметра, разделенного на 2, мы получаем оставшиеся 1.

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

Однако, хотя даже не было известно, нам было возможно называть это так же, как мы называем нормальную функцию.

Вот еще один пример функции лямбда:

addition = lambda a, b: a+b
print (addition (19,55))

Выход: 74.

2. Подразнения в Python

Понимание в Python доставит нас с сжатым, но свежим способом придумывать новые последовательности (такие как списки, набор, словарь и т. Д.)

Python поддерживает 4 типа понимания

  • Список понимания
  • Словарь понимание
  • Набор
  • Генератор

Список понимания

Список является одним из основных типов данных в Python. Всякий раз, когда вы столкнулись с именем переменной, за которым следуют квадратный кронштейн [] или Bey Builder, это список, который может содержать несколько элементов, что делает его типом данных, которые интегрированы. Точно так же также является хорошей идеей, чтобы объявить новый список, а затем добавить один или несколько предметов к нему.

Пример:

even_numbers = [2, 4, 6, 8, 10]
print (even_numbers)

Выход:

[2,4,6,8,10]

Что такое понимание списка?

Проще говоря, понимание списка – это процесс создания нового списка из существующего списка. Или вы можете сказать, что это уникальный способ добавления петли Python в список. Список понимания, на самом деле, предлагает множество преимуществ по сравнению с традиционными списками.

Во-первых, код не превышает одну строку, что облегчает объявление и прочитать. Также удобно понять списки с использованием понимания, чем использование для цикла. Наконец, это также простой, быстрый и точный способ создания нового, более динамического списка.

Синтаксис:

[expression for item in list]

ИЛИ ЖЕ

[expression for item in list if conditional]

Синтаксис понимания списка немного отличается от другого синтаксиса, так как выражение упоминается перед циклом, но вот как это делается.

Пример:

n_letter = [letter for letter in 'encyclopedia']
print(n_letter)

Выход:

[«E», «N ‘,« C »,« Y »,« C »,« L »,« O »,« P »,« E »,« D »,« I »,« A »]

Словарь понимание

Слоксиры являются реализация Python структуры данных, известной как ассоциативный массив. Словарь содержит набор ключевых значений. Каждая пара ключей устанавливает ключ к соответствующему значению. Вы можете определить словарь, охватывающий запятую список пар клавишных пар в фигурных скобках ({}). Колон (:) отделяет каждый ключ от соответствующего значения:

Пример:

thisdict = {"name": "Ford","age": 34, "last_name": "Mustang"}
print(thisdict)

Выход:

{'name': 'Ford', 'age': 34, 'last_name': 'Mustang'}

Что такое понимание словаря?

Словарь понимание аналогично пониманию списка с дополнительными требованиями определения ключа:

Синтаксис:

output_dict = {key:value for (key, value) in iterable if (key, value satisfy this condition)}

Пример:

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

sq_dict = dict()
for number in range(1, 9):
    sq_dict[number] = number*number
print(sq_dict)

Теперь, давайте попробуем ту же функцию, используя словарное понимание

square_dict = {num: num*num for num in range(1, 9)}
print(square_dict)

Выход:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

Установить понимание

Наборы используются для хранения нескольких элементов в одной переменной. Набор является одним из 4 типов данных, встроенных в Python, используемый для хранения коллекций данных. Другой 3 списка, кортеж и словарь, все с разными атрибутами и использованием.

Пример:

brand_set = {"Mustang", "Ferrari", "Ford","Aston Martin"}
print(brand_set)

Выход:

{'Aston Martin', 'Mustang', 'Ford', 'Ferrari'}

Что устанавливает понимание?

Установленное понимание аналогично пониманию списка. Единственная разница между ними состоит в том, что установленные потенциалы используют курчавые скобки {}. Давайте посмотрим на следующий пример, чтобы понять настроенное понимание.

Синтаксис:

{expr for variable in iterable}

ИЛИ ЖЕ

{expression for variable in iterable if condition}

Пример:

s = [1,2,3,4,5,4,6,6,7,8,8,]
using_comp = {var for var in s if var % 2 ==0}
print(using_comp)

Выход:

{8, 2, 4, 6}

Понимание генератора

Генератор является специальным типом итератором, который поддерживает инструкции по созданию своих отдельных компонентов соответственно и его текущее состояние репликации. Это производит каждого члена, по одному за раз, только по запросу итерации.

Синтаксис:

(expression for var in iterable if condition)

Что такое понимание генератора?

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

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

Пример:

input_list = [1, 2, 3, 4, 4, 5, 6, 7, 7] 
output_gen = (var for var in input_list if var % 2 == 0) 
print("Output values using generator comprehensions:", end = ' ') 
for var in output_gen: 
     print(var, end = ' ')

Выход:

Output values using generator comprehensions: 2 4 4 6

3. Функции декоратора

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

Вы можете подумать о других мероприятиях, таких как простой пончики; Процесс украшения для нанесения покрытий на пончики. Независимо от того, как вы их украшаете, они все еще пончики.

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

Синтаксис:

@dec2
@dec1
def func (arg1, arg2, ...):
    pass

4. Хашимость

Hashability – это особенность объектов Python, которая говорит, имеет ли объект hash value или нет. Если элемент имеет значение HASH, его можно использовать в качестве словаря или в качестве предварительно установленного элемента.

Объект усугубляется, если у него есть фиксированное значение хеша на протяжении всей жизни. Python имеет встроенный хэш-метод (__hhash __ ()), который можно сравнить с другими объектами.

Сравнение требует метода __eQ __ () или __CMP __ () и если у хешируемых элементов равны, у них одинаковое хешское значение.

Пример:

s1 = (2,4,6,8,10)
s2 = (1,3,5,7,9)
#shows the id of the object
print(id(s1))
print(id(s2))

Выход:

1898434378944
1898436290656

В приведенном выше примере два элемента различны, так как неконвертируемые типы хеш-значение зависят от хранящихся данных, а не на их идентификаторе.

Большим преимуществом использования хэшей является быстрое время поиска (например, в комплексное время поиска (например, O (1)) для получения элемента из словаря. Аналогично, проверка того, что что-то является набором требует нормальное количество времени.

Другими словами, использование хеширования в качестве процесса запуска обеспечивает высокую производительность для различных стандартных операций, таких как обнаружение объекта, установка объекта и тестирование объекта, используя голову выше, имеющую хеш-таблицу под капотом.

Заключение

В этой статье мы рассмотрели пять концепций высокого уровня в Python. Вот быстрый обзор наиболее важной информации.

  • Лямбда Деятельность : Вы используете функции лямбда для выполнения простой задачи, обычно в другом вызове функций, таких как фильтр () или MAX ().
  • Понимание : Это простой и эффективный способ составить списки, словари и сборники из системы.
  • Генераторы : Lazily- оценил итератор, который предлагает товары только при запросе, и в результате они очень хорошо работают в памяти. Они должны использоваться при работе с большими данными в последовательности.
  • Декораторы : Декораторы полезны, когда вы хотите найти другие неалгоритмические изменения и текущие функции. Кроме того, декораторы могут быть использованы неоднократно. После определения они могут украсить столько функций, сколько вы хотите.
  • Хашимость : Сила является необходимым компонентом объектов Python, которые можно использовать в качестве ключей словаря или установленные объекты. Они предлагают способ вернуть и установить что-то эффективное, а также тестирование членства.

Это было вкратце по поводу некоторых продвинутых тем в Python.

Надеюсь это поможет!