25 полезных однострочников Python, которые вы должны знать

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

Это сделает Python великим

Оригинал "25 Useful Python One-Liners That You Should know" от Abhay Parashar

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

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

1. Сменка двух переменных

# a = 4 b = 5
a,b = b,a
# print(a,b) >> 5,4

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

2. Множественные присвоения переменных

a,b,c = 4,5.5,'Hello'
#print(a,b,c) >> 4,5.5,hello

Вы можете использовать запятые и переменные, чтобы назначать нескольким переменным значения за раз. Используя этот метод, вы даже можете назначить несколько типов данных var за раз. Вы можете использовать список для присвоения значений переменным. Ниже приведен пример присвоения нескольких значений разным переменным из списка.

a,b,*c = [1,2,3,4,5]
print(a,b,c)
> 1 2 [3,4,5]

3. Сумма четных чисел в списке

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

a = [1,2,3,4,5,6]
s = sum([num for num in a if num%2 == 0])
print(s)
>> 12

4. Удаление нескольких элементов из списка

del - ключевое слово, используемое в Python для удаления объектов из списка.

#### Удаляем все четные числа
a = [1,2,3,4,5]
del a[1::2]
print(a)
>[1, 3, 5]

5. Чтение файлов

lst = [line.strip() for line in open('data.txt')]
print(lst)

Здесь мы используем понимание того, как устроен список. Сначала мы открываем текстовый файл и с помощью цикла for читаем строку за строкой. В итоге с помощью strip убираем все лишнее пространство. Но есть один более простой и короткий способ сделать то же самое, используя только функцию списка.

list(open('data.txt'))
##Использование with также закроет файл после использования
with open("data.txt") as f: lst=[line.strip() for line in f]
print(lst)

6. Запись данных в файл

with open("data.txt",'a',newline='\n') as f: f.write("Python is awesome")

Приведенный выше код сначала создаст файл data.txt, если его еще нет, а затем напишет в этом файле Python is awesome.

7. Создание списков

lst = [i for i in range(0,10)]
print(lst)
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

или

lst = list(range(0,10))
print(lst)

Мы также можем создать список строк, используя тот же метод.

lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']]
print(lst)
> ['Hello Karl', 'Hello Abhay', 'Hello Zen']

8. Mapping списков, или изменение типа данных в списке

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

list(map(int,['1','2','3']))
> [1, 2, 3]
list(map(float,[1,2,3]))
> [1.0, 2.0, 3.0]

# А вот как делалось раньше
[float(i) for i in [1,2,3]]
> [1.0, 2.0, 3.0]

9. Создание набора

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

# Квадрат всех четных чисел в диапазоне
{x**2 for x in range(10) if x%2==0}
> {0, 4, 16, 36, 64}

10. Fizz Buzz

Это тест, в котором нам нужно написать программу, что печатает числа от 1 до 100. Но для чисел, кратных трем, выведет «Fizz» вместо числа, а для кратных пяти выведет «Buzz». (если кратно и трем, и пяти, то выводится, соответственно, FizzBuzz).

Похоже, нам нужно использовать циклы и несколько операторов if-else. Если вы попытаетесь сделать это на любом другом языке, то вам, возможно, придется написать до 10 строк кода. Но используя python, мы сможем реализовать FizzBuzz всего одной строкой кода.

['FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i  for i in range(1,20)]

В приведенном выше коде мы используем понимание списка для запуска цикла от 1 до 20, а затем на каждой итерации цикла мы проверяем, делится ли число на 3 или 5. Если да, то мы заменяем число на Fizz или Buzz соответственно (при выполнении обоих условий заменим число на FizzBuzz).

11. Палиндром

Палиндром - это число или строка, которые в обратном виде выглядят одинаково.

text = 'level'
ispalindrome = text == text[::-1]
ispalindrome
> True

12. Целые числа, разделенные пробелами, в списке

lis = list(map(int, input().split()))
print(lis)
> 1 2 3 4 5 6 7 8
[1, 2, 3, 4, 5, 6, 7, 8]

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

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

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

sqr = lambda x: x * x  ##Функция, возвращающая квадрат любого числа
sqr(10)
> 100

14. Проверить наличие числа в списке

num = 5
if num in [1,2,3,4,5]:
     print('present')
> present

15. Вывод паттернов

Паттерны - это то, что меня всегда увлекало. В python мы можем рисовать удивительные паттерны, используя всего одну строку кода.

n = 5
print('\n'.join('
Источник: https://habr.com/ru/post/540486/


Интересные статьи

Интересные статьи

Маркетолог — слишком уж разносторонняя личность. И даже если специалист углубляется в одну сферу, например, контент или SEO, понимание, как работают другие подразделения ...
Набор полезных, но не очень известных инструментов и библиотек Android.Работая над статьями о 30 лучших библиотеках и проектах Android 2019 г. и 25 лучших библиотеках и проектах Andr...
Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov. Curl — это популярный инс...
Вас ждёт очень медленная платформа, переход на новые фреймворки, тестирование с особой атмосферой и уведомления от ОС «эй, подвинься» за секунду до принудительной выгрузки треда. Да, это м...
Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи Apal Shah «Common Javascript Promise mistakes every beginner should know and avoid». Распространенные ошибки пр...