Полезные однострочные сниппеты Python для решения любой проблемы кодирования всего в одной строке
В этом блоге я расскажу о 20 однострочниках Python, каждый из которых вы можете легко изучить за 30 секунд или меньше. Этот однострочный код сэкономит ваше время и сделает ваш код более чистым и легким для чтения.
1 # - цикл в одной строке
Цикл for - это многострочный оператор, но в Python мы можем написать цикл for в одну строку, используя метод понимания списка. Рассмотрим пример фильтрации значений меньше, чем 250. Ознакомьтесь с приведенным ниже примером кода.
#For loop in One line mylist = [100, 200, 300, 400, 500] #Orignal way result = [] for x in mylist: if x > 250: result.append(x) print(result) # [300, 400, 500] #One Line Way result = [x for x in mylist if x > 250] print(result) # [300, 400, 500]
2 # - Пока цикл в одной строке
Этот фрагмент One-Liner покажет вам, как использовать код цикла While в One Line, я показал два способа сделать это.
#method 1 Single Statement while True: print(1) # infinite 1 #method 2 Multiple Statement x = 0 while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5
3 # - IF Else в одной строке
Итак, чтобы написать оператор IF Else в одной строке, мы будем использовать тернарный оператор. Синтаксис Ternary: «[при истине], если [выражение] еще [при ложном]».
Я показал 3 примера в приведенном ниже примере кода, чтобы вы поняли, как использовать тернарный оператор для однострочного оператора if-else. Чтобы использовать оператор Elif, нам пришлось использовать несколько тернарных операторов.
#if Else in One Line #Example 1 if else print("Yes") if 8 > 9 else print("No") # No #Example 2 if elif else E = 2 print("High") if E == 5 else print("Meidum") if E == 2 else print("Low") # Medium #Example 3 only if if 3 > 2: print("Exactly") # Exactly
4 # - Объединить словарь в одну строку
Этот фрагмент из одной строки покажет вам, как объединить два словаря в один с помощью одной строки кода. Ниже я показал два метода объединения словарей.
# Merge Dictionary in One Line d1 = { 'A': 1, 'B': 2 } d2 = { 'C': 3, 'D': 4 } #method 1 d1.update(d2) print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4} #method 2 d3 = {**d1, **d2} print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
5 # - Функция в одной строке
У нас было два метода записи функций в одну строку. В первом методе мы будем использовать одно и то же определение функции с тернарным оператором или методами однострочного цикла.
Второй способ - определить функции с помощью лямбда. Ознакомьтесь с приведенным ниже примером кода для более четкого понимания.
#Function in One Line #method 1 def fun(x): return True if x % 2 == 0 else False print(fun(2)) # False #method 2 fun = lambda x : x % 2 == 0 print(fun(2)) # True print(fun(3)) # False
6 # - Рекурсия в одну строку
Этот однострочный фрагмент покажет, как использовать рекурсию в одну строку. мы будем использовать однострочное определение функции с однострочным оператором if-else. Ниже приведен пример нахождения чисел Фибоначчи.
# Recursion in One Line #Fibonaci example with one line Recursion def Fib(x): return 1 if x in {0, 1} else Fib(x-1) + Fib(x-2) print(Fib(5)) # 8 print(Fib(15)) # 987
7 # - Фильтрация массива в одну строку
Списки Python можно фильтровать в одной строке кода с помощью метода понимания списка. Возьмем, к примеру, фильтрацию списка с четными числами.
# Array Filtering in One Line mylist = [2, 3, 5, 8, 9, 12, 13, 15] #Normal Way result = [] for x in mylist: if x % 2 == 0: result.append(x) print(result) # [2, 8, 12] #One Line Way result = [x for x in mylist if x % 2 == 0] print(result) # [2, 8, 12]
8 # - Обработка исключений в одной строке
Мы использовали обработку исключений для устранения ошибок времени выполнения в Python. Вы знаете, что мы можем написать это выражение Try Except в однострочном режиме? Это можно сделать с помощью оператора exec ().
# Exception Handling in One Line #Original Way try: print(x) except: print("Error") #One Line Way exec('try:print(x) \nexcept:print("Error")') # Error
9 # - Список в словарь в одну строку
Мы можем преобразовать список в словарь в одну строку, используя функцию Python enumerate (). Передайте список в enumerate () и используйте dict () для преобразования окончательного вывода в формат словаря.
# Dictionary in One line mydict = ["John", "Peter", "Mathew", "Tom"] mydict = dict(enumerate(mydict)) print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}
10 # - Многопараметрическая в одной строке
Python позволяет назначать несколько переменных в одной строке. Ниже приведен пример кода, который покажет вам, как это сделать.
#Multi Line Variable #Normal Way x = 5 y = 7 z = 10 print(x , y, z) # 5 7 10 #One Line way a, b, c = 5, 7, 10 print(a, b, c) # 5 7 10
11 # - Обмен в одной строке
Обмен - интересная задача в программировании, и для сохранения значений подкачки всегда требовалось третье имя переменной temp. Этот однострочный фрагмент покажет вам, как поменять местами значения в одной строке без какой-либо временной переменной.
#Swap in One Line #Normal way v1 = 100 v2 = 200 temp = v1 v1 = v2 v2 = temp print(v1, v2) # 200 100 # One Line Swapping v1, v2 = v2, v1 print(v1, v2) # 200 100
12 # - Сортировка в одну строку
Сортировка - это общая проблема в программировании, и в Python было много встроенных методов для решения этой проблемы сортировки. Ниже приведен пример кода, который покажет, как выполнить сортировку в одну строку.
# Sort in One Line mylist = [32, 22, 11, 4, 6, 8, 12] # method 1 mylist.sort() print(mylist) # # [4, 6, 8, 11, 12, 22, 32] print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]
13 # - Прочитать файл в одну строку
Можно правильно прочитать файл в одну строку без использования оператора или обычного метода чтения.
#Read File in One Line #Normal Way with open("data.txt", "r") as file: data = file.readline() print(data) # Hello world #One Line Way data = [line.strip() for line in open("data.txt","r")] print(data) # ['hello world', 'Hello Python']
14 # - Класс в одну строку
Класс - это всегда многострочная работа. Но в Python есть несколько способов использования классовых функций в одной строке кода.
# Class in One Line #Normal way class Emp: def __init__(self, name, age): self.name = name self.age = age emp1 = Emp("Haider", 22) print(emp1.name, emp1.age) # Haider 22 #One Line Way #method 1 Lambda with Dynamic Artibutes Emp = lambda: None; Emp.name = "Haider"; Emp.age = 22 print(Emp.name, Emp.age) # Haider 22 #method 2 from collections import namedtuple Emp = namedtuple('Emp', ["name", "age"]) ("Haider", 22) print(Emp.name, Emp.age) # Haider 22
15 # - точка с запятой в одну строку
Точка с запятой в одном фрагменте строки покажет вам, как написать несколько строк кода в одной, используя точку с запятой.
# Semi colon in One Line #example 1 a = "Python"; b = "Programming"; c = "Language"; print(a, b, c) #output: # Python Programming Language
16 # - Печать в одну строку
Это не очень важный фрагмент, но иногда он полезен, когда вам не нужно использовать цикл для выполнения задачи.
# Print in One Line #Normal Way for x in range(1, 5): print(x) # 1 2 3 4 #One Line Way print(*range(1, 5)) # 1 2 3 4 print(*range(1, 6)) # 1 2 3 4 5
17 # - Функция карты в одной строке
Функция Map - это применимая функция высшего порядка. Это применяет функцию к каждому элементу. Ниже приведен пример того, как мы можем использовать функцию карты в одной строке кода.
#Map in One Line print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10]))) #output # [7, 8, 9, 10, 11, 12]
18 # - Удалить элемент Mul в одной строке списка
Теперь вы можете удалить несколько элементов в списке в одной строке кода, используя метод del с небольшими изменениями .
# Delete Mul Element in One Line mylist = [100, 200, 300, 400, 500] del mylist[1::2] print(mylist) # [100, 300, 500]
19 # - Печать выкройки в одну строку
Теперь вам больше не нужно использовать Loop для печати того же рисунка. Вы можете использовать оператор Print и звездочку (*), чтобы сделать то же самое в одной строке кода.
# Print Pattern in One Line # Normal Way for x in range(3): print('😀') # output # 😀 😀 😀 #One Line way print('😀' * 3) # 😀 😀 😀 print('😀' * 2) # 😀 😀 print('😀' * 1) # 😀
20 # - Найти простое число в одной строке
Этот фрагмент покажет вам, как написать однострочный код, чтобы найти простое число в пределах диапазона.
# Find Prime Number print(list(filter(lambda a: all(a % b != 0 for b in range(2, a)), range(2,20)))) #Output # [2, 3, 5, 7, 11, 13, 17, 19]
Последние мысли
Я поделился с вами полезными и интересными однострочными фрагментами Python. Надеюсь, вам понравится и вы чему-нибудь научитесь. Поделитесь им со своими друзьями и другими программистами Python, которых вы знаете. Не стесняйтесь оставлять отзывы. Удачного кодирования!
Учить больше
Вы поклонник Python и хотите еще несколько снимков Python, ознакомьтесь с моими приведенными ниже статьями о Python? 😀.
Больше контента на plainenglish.io