Python в одну строчку

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

 

1.  Конструкция "if - then - else"

 

Ее можно записать в одну строку двумя способоми

 

if season == 'Лето':
    weather = 'Тепло'
else:
    weather = 'Холодно'

 

Вариант 1.

Синтаксис: { действие если условие истинно } if { условие } else { действие если условие ложно}

 

weather = 'Тепло' if season == 'Лето' else 'Холодно'

 

Вариант 2. 

Синтаксис: ({ выражение если условие истинно }, { выражение если условие ложно })[{ условие }]

 

weather = ('Тепло', 'Холодно')[season == 'Лето']

 

2. Генераторы списков (list comprehension)

 

Задача: сгенерировать список квадратов четных чисел от 0 до 10

 

v = []
for x in range(11):
    if x % 2 == 0:
        v.append(x*x)

 

Более компактная запись:

 

sqr = [x*x for x in range(11) if x % 2 == 0]

 

В обоих случаях результат будет [0, 4, 16, 36, 64, 100]

 

 

3. Lambda функции

 

Задача: Увеличить каждый элемент списка на самого себя

 

numbers = [1, 2, 3, 4, 5]
for i in range(len(numbers)):
    numbers[i] += numbers[i]

 

Более компактная запись с использование lambda функции

 

numbers = [1, 2, 3, 4, 5]
numbers = list(map(lambda x: x+x, numbers))

 

В обоих случаях результат будет [2, 4, 6, 8, 10]

 

 

4. Смена значений переменных местами

 

Задача: поменять значения переменных X и Y местами.

 

Поменять можно двумя способами. С использованием временной переменной и без.

 

tmp = x
x = y
y = tmp

 

x = x + y
y = x - y
x = x - y

 

Как это можно сделать на Python

 

x, y = y, x

Комментарии


Добавить комментарий

footer
Перепечатывание материалов сайта с указанием первоисточника приветствуется.
Копирайт © 2019 - 2021. Блог PYTHON разработчика. Все права защищены.