Полезные однострочные сниппеты 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