Python: ключевые понятия и хитрости

Tags: Python, программирование

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

 Введение

Как и всем программистам, нам всегда нравится начинать с описания типов данных. Это  отличный способ выучить и объяснить любые новые понятия языка. Итак, какие типы данных бывают в Python? Давайте посмотрим:

Тип данных или просто тип - это атрибут данных, который сообщает интерпретатору, как программист намеревается использовать данные. Как мы все знаем, наиболее распространенными типами данных в Python являются float (с плавающей запятой), int (целое число), str (строка), bool (логическое значение), list и dict (словарь). Но в отличие от C или C ++, Python автоматически определяет, в каком типе данных он будет хранить данные. но вам необходимо знать типы данных для преобразования данных из одного типа в другой (также называемый преобразованием типов или преобразованием типов). Давайте рассмотрим пример базового типа данных (List), чтобы понять язык и программирование в целом.

## I am simply creating a list and printing out the type of indivisual elements in the list .. 
List = [1,2.0,"Hello World",True,[1,2,3,4,5],{'key':'value'}]

# I am using for in loop because the size of the list is fixed ..
for element in List:
    print(type(element))

# or you can also use list compreshension     
elements = [type(element) for element in List]
print(elements)
# output //
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
[<class 'int'>, <class 'float'>, <class 'str'>, <class 'bool'>, <class 'list'>, <class 'dict'>]

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

Основные методы списка

Давайте посмотрим на некоторые методы списка, чтобы вставить и удалить элемент из списка…

  1. append: добавить элемент в список. Производительность: Временная сложность  для добавления элемента в конец списка: o (1), а в любом другом месте o (n).
  2. remove : удалить элемент из списка. Производительность: временная сложность удаления элемента из списка составляет o (n)

Временная сложность для поиска элемента в списке всегда o (1)

## List Methods ...

# insertion 
List.append((1,5.0))
print(List)

# seraching an element in the list which is already in a list ... 
list_in_list = List[4][0] 
print(list_in_list)

# deletion 
List.remove(1)
print(List)
# output //
[1, 2.0, 'Hello World', True, [1, 2, 3, 4, 5], {'key': 'value'}, (1, 5.0)]
1
[2.0, 'Hello World', True, [1, 2, 3, 4, 5], {'key': 'value'}, (1, 5.0)]

Управление элементами списка

  1. lambda Function: они записаны в 1 строку и используются для определения пользовательских функций.
  2. map() Method (также называемый векторным методом в DataScience): используйте функцию map для сопоставления пользовательской функции, определенной вами, с каждым элементом списка. метод map принимает 2 аргумента -

а. функция, которую вы хотите применить

б. список, который вы хотите применить вышеупомянутую функцию

  1. enumerate() Method: метод enumerate () добавляет счетчик к итерируемому и возвращает его. Возвращаемый объект является объектом перечисления.
custom_list = [[1,2,3,4,5],["Cat","Dog","Dog","Tiger","Lion","Goat"]]

# custom function to find square of a number 
def square_of_number(x):
    return x*x 

# using lambda functions to create a new list from exisitng list but with cube of each items in the list..
cube_of_number = lambda x:x*x*x
squares_of_list_items = lambda x:x*x
# using map function to apply a function to all elements of the list  
new_list_of_squares = list(map(squares_of_list_items,custom_list[0]))
new_list_of_cubes = list(map(cube_of_number,custom_list[0]))

print(new_list_of_squares)
print(new_list_of_cubes)

# Using Enumerate to find the count of Each animal in custum_list 
for i,x in enumerate(custom_list[1]):
    print('iterater is :', i ,'and value is ', x)
# output //
[1, 4, 9, 16, 25]
[1, 8, 27, 64, 125]
<enumerate object at 0x7f0cf44e4b40>
iterater is : 0 and value is Cat
iterater is : 1 and value is Dog
iterater is : 2 and value is Dog
iterater is : 3 and value is Tiger
iterater is : 4 and value is Lion
iterater is : 5 and value is Goat

Генераторы и декораторы:

  1. Генераторы Python (Generators) - это простой способ создания итераторов/итерируемых объектов. Это то, что может быть приостановлено во время вызова функции и может быть возобновлено в любое время в течение жизненного цикла всей программы с помощью функции next ().
  2. Декораторы (Decorators) - это объекты первого класса в Python. Это означает, что они могут быть переданы по ссылке в любой функции. Decorator - это просто причудливое имя и способ передачи функции в качестве аргумента другой функции. они также называются вызываемыми объектами, которые принимают функцию и возвращают или изменяют поведение этой функции.
# Generators : 
def generator():
    for i in range(5):
        yield i
print(generator)   # output:// <function generator at 0x7fd59831ad08>
a = generator()
print(next(a))     # output:// 0
print(next(a))     # output:// 1 

# Decorators 
def function1():
    print('this is function 1')
    
def function2(function_argument):
    function_argument()
    print('this is function 2')
    
new_object = function2(function1)  # output:// this is function 1 this is function 2

# using it as a decorator function ... 
@function2
def function1():
    print('this is function 1')    # output:// this is function 1 this is function 2

*args и **kwargs

args и ** kwargs - самые важные ключевые слова, которые мы часто используем в своем стиле кодирования и практике программирования. Например, вы создаете функцию, и вы не знаете ожидаемое количество параметров. В этом случае мы используем * args, а если это словарь, то используем ** kwargs.
def arr(*args):
    for i in args:
        print(i)

arr(1,2,3,4) # output: // 1 2 3 4 
arr(1,2)     # output:// 1 2 
Python  - отличный язык программирования. Ему легко учиться и его можно быстро реализовать. Он поддерживает множество пакетов, поэтому он используется многими хакерами, учеными по данным и внутренними разработчиками для выполнения своих повседневных задач.

No Comments

Add a Comment