В Python 3 есть некоторые типы данных, которые позволяют хранить в себе сразу несколько объектов это последовательности и множества.
Введение
В этой статье поговорим о следующих типах данных:
- Строки — это неизменяемые последовательности символов (текстовые последовательности). Изменить строку не получится, можно лишь создать новую строку. Символы в строке проиндексированы слева на право, а индексация начинается с нуля. Обычно строки применяются для хранения текстовой информации.
- Списки — это изменяемые последовательности объектов. Списки позволяют хранить разнородные объекты, например в одном списке могут находиться и числа и строки. Списки допускают вложенность, так в списке может быть другой список, или любой другой объект для хранения множества объектов. Объекты в списке проиндексированы, так же как символы в строках.
- Кортежи — это неизменяемые списки. То есть это что-то среднее между строкой и списком. Вместо символов кортеж хранит объекты, как список. Но изменить кортеж нельзя, как строку. Изменяя кортеж вы получити новый кортеж.
- Словари — это не упорядоченные объекты, которые хранятся в виде «ключ — значение». В принципе, если делать ключи от 0 и прибавлять 1 к каждому новому ключу, то получится обычный список, просто индексация будет выполнена вручную. Здесь также поддерживается вложенность, как в списках и кортежах.
- Множества — неупорядоченная и изменяемая коллекция объектов без дубликатов. То есть мы можем хранить в множестве разные объекты, но они будут не упорядочены (не проиндексированы). Но два одинаковых объекта в множестве не хранятся. Даже в больших множествах операция поиска выполняется очень быстро.
Создание перечисленных объектов
Строки:
my_str1 = str('Строка 1') my_str2 = 'Строка 2'
Списки:
my_list1 = list([1, 3, 'три']) my_list2 = [1, 2, 'три']
Кортежи:
my_tuple1 = tuple([1, 2, 'три']) my_tuple2 = (1, 2, 'три')
Словари:
my_dict1 = dict({1 : 'Иван', 2 : 'Иванов'}) my_dict2 = {1 : 'Иван', 2 : 'Иванов'}
Множества:
my_set1 = set({1, 2, 'три'}) my_set2 = {1, 2, 'три'}
Обратите внимание что множества и словари создаются с помощью фигурных скобок, просто в множествах отсутствует ключ.
Множества и словари не упорядочены. То есть мы не можем по индексу вытащить какой-то элемент из множества {1, 2, ‘три’}, зато из списка [1, 2, ‘три’] или кортежа (1, 2, ‘три’) можем.
Список и кортеж, используя класс, создаются одинаково (меняется только класс) — my_list1 = list([1, 3, ‘три’]) и my_tuple1 = tuple([1, 2, ‘три’]). Они очень похожи, но мы не можем в кортеже поменять какой-то элемент, или добавить новый элемент, можем лишь сделать новый кортеж. А списки менять можем.
Итог
Мы разобрали как создаются в Python 3 последовательности и множества.
Изменяемый | Неизменяемый | |
Упорядоченная последовательность | Список | Строка Кортеж |
Неупорядоченный набор данных | Словарь Множество |
Подробнее про эти типы данных вы можете почитать в отдельных статьях:
Про последовательности также можете почитать в официальной документации по Python 3 — ссылка.