Справочник Python. Кортежи, списки, словари.

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

  1. Кортеж
  2. Список
  3. Словарь

1. Кортежи

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

Создать кортеж можно следующим образом:

Либо с помощь встроенной функции tuple():

Функция tuple() преобразует переданный ей список в кортеж. Как вы уже заметили, в кортеже могут храниться данные разных типов, в том числе допустимо и создание кортежа, в котором хранятся кортежи. Например:

Результатом выполнения этого кода будет вывод в консоль «(2,3)», так как индексация в Python начинается с 0.
При попытке изменить кортеж(как мы помним, это неизменяемый набор данных), интерпретатор Python вернет ошибку:

Если же изменить значение очень надо, то тут на помощь приходит следующий тип коллекций:

2. Списки

Списки похож на кортеж тем что доступ к элементам списка осуществляется по индексу и в том что элементы списка могут быть разных типов(это основное, но не единственное, отличие списка в Python от классических массивов). В отличие от кортежа значения элементов списка можно изменять. Индексация в списках также начинается с нуля, как и в кортежах.

Для того чтобы создать список можно воспользоваться одним из следующих способов:

Статическое создание списка:

Или использовать генератор списков Python:

Список создан, теперь рассмотрим основные возможности Python по работе со списками:

 Сечение(или срез) списка

Отметим, что в оператор print можно передавать не только переменные, но и более сложные структуры, такие как кортежи, списки и словари, он все выведет на экран.

Добавление элемента в список.

Сортировка списка

Количество элементов в списке(длина списка):

Максимальный и минимальный элементы списка:

Более подробно об остальных функциях списка можно узнать в справочние [ссылка на статью про списки]
Часто доступ по индексу не очень удобен, и для таких случаев в Python существует такой тип коллекции как словарь.

3. Словари

После списков словарь является самым гибким встроенным типом. Если список — это упорядоченная коллекция, то словарь — неупорядоченная. Основные особенности словарей:

  • Доступ осуществляется по ключу, а не по индексу.
  • Значения словаря хранятся в неотсортированном порядке, как и ключи.
  • По аналогии со списками, словарь может хранить вложенные словари. Ключ в словаре — неизменяемый тип(immutable). Чаще всего используется строковой тип ключа.
  • Словари реализованы как хеш-таблицы с быстрым доступом.
  • Словари, так же как и списки, хранят ссылки на свои элементы, а не сами элементы.

Так что же такое словарь в Python? Словарь — это неупорядоченное множество пар ключ: значение с требованием уникальности ключей.

Давайте создадим словарь, который будет хранить пары вида домен — ip-адрес :

В этом примере мы создали словарь dict_example, записали в него два значения ip-адресов с ключами ‘localhost’ и ‘google.com’ соответственно. А потом легко и просто вычислили Google по ip.

Долой скучную теорию, даешь программирование на Python!