Советы и хитрости Python по экономии времени

Лучшие советы и хитрости Python

Эти полезные советы по Python делают язык красивым

В этой статье представлены основные советы и рекомендации по использованию Python, которые помогут сэкономить ваше время и усилия.

1. Распаковка элементов массива

first_name, last_name = ['Farhad', 'Malik']
print(first_name) #It will print Farhad
print(last_name) #It will print Malik

2. Обмен переменных

first_name, last_name = ['Farhad', 'Malik']
last_name, first_name = first_name, last_name
print(first_name) #It will print Malik
print(last_name) #It will print Farhad

3. Профиль и статистика вашего кода

import cProfile, pstats, StringIO 
pr = cProfile.Profile() 
pr.enable() 
# ... do something ... pr.disable() 
s = StringIO.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats(‘cumulative’) 
ps.print_stats() 
print s.getvalue()

4. Повторить строку

'A'*3 will repeat A three times:  AAA

Python - отличный язык

5. Нарезка

y = 'Abc'
y[:2] = ab
y[1:] = bc
y[:-2] = a
y[-2:] = bc

6. Реверс

x = 'abc'
x = x[::-1]

7. Отрицательный индекс

Если вы хотите начать с последнего символа, используйте отрицательный индекс.

y = 'abc'
print(y[-1]) # will return c

8. Наборы пересечений

  • Чтобы получить общее в двух наборах
a = {1,2,3}
b = {3,4,5}
c = a.intersection(b)

9. Разница в наборах

  • Чтобы получить разницу между двумя наборами:
a = {1,2,3}
b = {3,4,5}
c = a.difference(b)

10. Союз Коллекций

  • Чтобы получить отличный комбинированный набор из двух наборов
a = {1,2,3}
b = {3,4,5}
c = a.union(b)

11. Необязательные аргументы

Мы можем передать необязательные аргументы, указав значение по умолчанию для аргумента:

def my_new_function(my_value='hello'):
  print(my_value)
#Calling
my_new_function() => prints hello
my_new_function('test') => prints test

12. Неизвестные аргументы с использованием * аргументов

Если ваша функция может принимать любое количество аргументов, добавьте * перед именем параметра:

def myfunc(*arguments):
 for a in arguments:
   print a

myfunc(a)
myfunc(a,b)
myfunc(a,b,c)

13. Словарь как аргумент с использованием ** аргументов

Он позволяет передавать функции различное количество аргументов ключевого слова.

Вы также можете передавать значения словаря в качестве аргументов ключевого слова:

def myfunc(**arguments):
  return arguments['key']

14. Функция с несколькими выходами

  • Если функция должна возвращать несколько значений, тогда:
resultA, resultB = get_result()
get_result() can return ('a', 1) which is a tuple

15. Один вкладыш для петель

[Variable] AggregateFunction([Value] for [item] in [collection])

16. Объединение списков с помощью Zip

  • Принимает несколько коллекций и возвращает новую коллекцию.
  • Новая коллекция содержит элементы, каждый из которых содержит по одному элементу из каждой входной коллекции.
  • Это позволяет нам просматривать несколько коллекций одновременно.
name = 'farhad'
suffix = [1,2,3,4,5,6]
zip(name, suffix)
--> returns (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)

17. Освободите память

  • Сборка мусора вручную может выполняться по своевременному или событийному механизму.
import gc
collected_objects = gc.collect()

18. Использование декораторов

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

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

def my_logger(function):
   
    @functools.wraps(function)
    def logger(*args, **kwargs):
        print(function.__name__)
        return function(*args, **kwargs)
    return logger

Теперь используйте его в своих функциях:

@my_logger
def hi():
  print 'hi'
@my_logger
def bye(a):
  print 'bye' + a

19. Распаковка

name = 'farhad'
suffix = [1,2,3,4,5,6]
result = zip(name, suffix)
--> returns (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)
unzipped = zip(*result)

20. Присоединение к коллекции

name = ["FinTech", "Explained"] 
print(" ".join(name))

21. Объем памяти объекта

import sys 
x = 'farhadmalik'
print(sys.getsizeof(x))

22. Распечатать текущий каталог

import os
print(os.getcwd())

23. Печать импортированных модулей

import sys
imported_modules = [m.__name__ for m in sys.modules.values() if m]

24. Получить текущий идентификатор процесса

import os

os.getpid()

Я настоятельно рекомендую эту статью, если вы хотите досконально разобраться в Python:



Надеюсь, советы и рекомендации помогут.