Архив метки: Python

Возможности использования Poetry в Python

Для управления зависимостями Python был создан специальный инструмент, цель которого – предварительно собрав и упаковав проекты, подготовить их к последующему распространению. Именно так работает Poetry, который можно отыскать вместе с утилитами, предназначенными для поддержки согласованности и изоляции виртуальных средств. Poetry довольно просто интегрируется с теми рабочими процессами, независимо от того, какие формы управления зависимости они эксплуатируют, в качестве примера можно привести requirements.txt. Читать →

Python 3. Арифметические операции

В этой статье разберем числовые типы данных в Python 3: int, float и complex, а также разберём арифметические операции.





Читать →

Python. Создаем программы и игры (3-е издание)

Python. Создаем программы и игры [3-е издание]

Данная книга позволяет уже с первых шагов создавать свои программы на языке Python. Акцент сделан на написании компьютерных игр и небольших приложений.

Для удобства начинающих пользователей в книге есть краткий вводный курс в основы языка, который поможет лучше ориентироваться на практике. По ходу изложения даются все необходимые пояснения, приводят-ся примеры, а все листинги (коды программ) сопровождаются подробными комментариями.

Книга будет полезна как начинающим программистам, так и всем, кто хочет быстро и эффективно научиться писать программы на Python. Читать →

Обзор 10 декораторов Python

Декораторы в Python — это нечто потрясающее! Они очень полезны в различных сценариях и невероятно просты в использовании.

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

Python 3. Работа с файлами

В статье будет описана работа с текстовыми файлами в Python 3. Вы научитесь сохранять строки и другие объекты в файлы а затем считывать их.





Читать →

Python 3. Множества

В этой статье я разбираю Множества в Python 3. Вы узнаете, какими свойствами обладают множества и как можно с ними работать.











Свойства множеств




Я уже писал про последовательности и множества в Python 3. Множество — это неупорядоченная совокупность объектов, в которой не может быть дубликатов. Множество можно изменять, добавляя и удаляя из него объекты.




Объявить множество можно с помощью фигурных скобок, но в отличии от словарей не нужно указывать ключи. Создание множества и получение некоторых свойств множества показаны ниже:




### Код
my_set = {1, 2, 3, 4, 5} # создание множества
print(type(my_set))      # тип
print(len(my_set))       # длина
print(my_set)

### Исполнение
<class 'set'>
5
{1, 2, 3, 4, 5}




Так как множество не упорядочены, то: обращение по индексу, срезы, конкатенация и повторение — здесь не работают.




Множества часто используются для двух целей:




  • для удаления дубликатов;



  • для про­верки, входит ли элемент в множество (поиск в множестве занимает очень мало времени даже для очень больших множеств).




Работа с множествами




Добавить элемент в множество можно с помощью метода add():




### Код
my_set = {1, 2, 3, 4, 5}
my_set.add(6)
print(my_set)

### Исполнение
{1, 2, 3, 4, 5, 6}




Можно одно множество соединить с другим с помощью метода update():




### Код
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {3, 4, 5, 6, 7}
my_set1.update(my_set2)
print(my_set1)

### Исполнение
{1, 2, 3, 4, 5, 6, 7}




Метод update() может принять любой список:




### Код
my_set = {1, 2, 3, 4, 5}
my_set.update([7, 5, 3, 6, 2])
print(my_set)

### Исполнение
{1, 2, 3, 4, 5, 6, 7}




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




Удаление элемента из множества можно выполнить с помощью методов remove() и discard(). При этом, если удалять несуществующий элемент:




  • с помощью remove() — то приложение выдаст ошибку,



  • с помощью discard() — приложение ничего не удалит, но и ошибки не будет.




### Код
my_set = {1, 2, 3, 4, 5}
my_set.remove(1)
my_set.discard(3)
print(my_set)

### Исполнение
{2, 4, 5}

### Код (удаление несуществующего элемента методом remove())
my_set = {1, 2, 3, 4, 5}
my_set.remove(6)
print(my_set)
print("Конец!") # Сюда выполнение кода не дойдёт

### Исполнение
Traceback (most recent call last):
  File "test2.py", line 2, in <module>
    my_set.remove(6)
KeyError: 6

### Код (удаление несуществующего элемента методом discard())
my_set = {1, 2, 3, 4, 5}
my_set.discard(6)
print(my_set)
print("Конец!") # Сюда выполнение кода дойдёт

### Исполнение
{1, 2, 3, 4, 5}
Конец!




Некоторые специфичные операции над множествами продемонстрированы на следующем рисунке:




Операции над множествами




Эти же операции в виде кода:




# Множества
my_set1 = {1, 5, 9, 6, 4}
my_set2 = {6, 5, 1, 8, 2}

# Пересечение
print(my_set1 & my_set2) # {1, 5, 6}

# Объединение
print(my_set1 | my_set2) # {1, 2, 4, 5, 6, 8, 9}

# Симметричная разница
print(my_set1 ^ my_set2) # {2, 4, 8, 9}

# Разница
print(my_set1 - my_set2) # {9, 4}
print(my_set2 - my_set1) # {8, 2}




Проверка на то, входит ли элемент в множество, осуществляется с помощью оператора in:




my_set = {15, 85, 12, 55, 95, 87, 33}
print(95 in my_set) # True
print(11 in my_set) # False




Так как множества должны вычислять хеш-код для каждого эле­мента, в них могут храниться только хешируемые элементы. В язы­ке Python изменяемые элементы (список, словарь) не являются хешируемыми. То есть, такое множество нельзя создать:




my_set = {[1, 2, 3], ["один", "два"]}




А такое можно:




my_set = {(1, 2, 3), ("один", "два")}









Итог




В этой статье я немного рассказал про множества (set) в Python 3. Дополнительно, про некоторые особенности множеств можете почитать в официальной документации.



2023-03-13T17:35:40
Python