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

Удобства Python

Есть несколько особенностей Python, которая делает его более удобным для написания ясного краткого кода. EA … Теги с Python, производительностью, сбожными.

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

Условные выражения

expr1 if condition else expr2

Вышеуказанный синтаксис эквивалентен утверждению:

condition ? expr1 : expr2

Для тех, кто знаком с Java или C ++. Составное выражение оценивается на expr1. , если условие верно, иначе он оценивает expr2 Использование .Example изложено ниже. Рассмотрим цель отправки максимального количества в качестве аргумента на функцию:

a,b = 4,5
if a > b:
   param = a
else:
   param = b
result = foo(param)

Целью вышеуказанного кода может быть достигнута при следующем ниже.

a,b = 4,5
param = a if a > b else b
result = foo(param)

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

a,b = 4,5
result = foo(a if a > b else b)

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

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

В большинстве случаев задача может быть создана одной серии значений на основе обработки другой серии. Это может быть легко достигнуто с помощью синтаксиса понимания. Существуют различные типы синтаксиса понимания в соответствии с включенным DataType. Давайте используем код ниже в качестве примера вычислений значений из одного списка в другой список.

list1 = [1,2,3,4]
list2 = []
for num in list1:
    list2.append(num*num)

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

list2 = [ num*num for num in list1 ] #list comprehension
{ num*num for num in list1 } #set comprehension
( num*num for num in list1 ) #generator comprehension
{ num :num*num for num in list1 } #dictionary comprehension

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

Упаковка и распаковка последовательностей

Упаковка и распаковка используются в корзах и других типах данных. Например, в коде ниже:

values = 4,5,6,7

Результаты в идентификаторе ценности Быть автоматически присвоенным кортежу (4,5,6,7) Отказ Это поведение известно как автоматическая упаковка кортежа. Одним из видов использования является возвращением нескольких значений из функции.

return x,y,z

Возвращает кортеж (х, у, z)

Python также предлагает способ распаковать кортеж, например, если значения, возвращаемые из функции foo, это кортеж (x, y, z) Отказ Это можно распаковывать, присвоение каждому значению в кортеже к идентификатору.

x,y,z = foo()

a,b,c = (1,2,3) # a = 1, b = 2, c = 3

for x, y in [ (7, 2), (5, 8), (6, 4) ]: # x = 7, y = 2 | x = 5, y = 8 |... and so on

Одновременные задания

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

a,b,c = 1, 2, 3

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

a = 5
b = 6
temp = a # temp = 5
a = b # a is now 6
b = temp # b is now 5

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

a,b = 5, 6
a,b = b, a

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

Оригинал: “https://dev.to/jamesbright/python-convienences-2di2”