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

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
02-Фев-2021 13:31

Это сделает 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('

===========
Источник:
habr.com
===========

===========
Автор оригинала: Abhay Parashar
===========
Похожие новости: Теги для поиска: #_python, #_python, #_tutorial, #_sugar, #_python
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 14:27
Часовой пояс: UTC + 5