В прошлой части учебника мы поговорили о списках, но в Python кроме их, есть ещё подобные типы данных, это кортежи и словари, о них тут мы и поговорим.
Python картежи:
Для начала раздерём картеж, что это такое и зачем он нужен, главной его особенностью можно считать то, что его нельзя изменить, как бы ты не хотел.
Второе прмушество в том, что он вести меньше по сравнению со списками, что может не много оптимизировать программу, иногда это может быть полезно.
Ну последние, картеж можно использовать в качестве ключей в словарях, о них чуть ниже.
Объявлять его надо так же, как и список, только вместо квадратных скобок, используем круглые, вот так:
1 2 | # Объявляем картеж a = ('a', 'b', 'c') |
Как видите всё просто, но важно знать, если вы добавите в картеж, только одно значение, оно потом приравняется к строке, чтобы этого не было, после первого значения добавьте запятую, примерно так:
1 | a = ('a',) |
Также вы можете из строки сделать картеж:
1 | a = tuple('Hello World') |
В таком случае, каждый элемент картежа будет равен одному символу из слова, включая пробела.
В остальном вы с ним можете работать также, как и со списком, только не изменяя данные.
Python словари:
Ещё есть словари, если кратко говоря, то это хеш-таблицы, или списки значением которых можно получить через ключевое слово, а не через индекс.
Их прмушество в том, что доступ к значению можно получить быстро, через ключ, как говорилось чуть выше.
Чтобы их объявить, нужно использовать фигурные скобки, выглядит это всё примерно так:
1 2 3 4 5 | a = {} b = { 'hello': 'world', 'test': 'test_test' } |
Как видите, вы можете объявить как пустой словарь, так уже и со значениями, ещё вы можете добавлять новые значения в него, для этого используете новый ключ и присваивайте ему значения:
1 2 3 4 5 6 7 8 9 | # Создаём словарь b = { 'hello': 'world', 'test': 'test_test' } # Добавляем в него новое значение b['one'] = '1' # Выводим словарь print(b) |
То есть, чтобы добавить новое значение, нужно в квадратных скобках перед названием словаря назначать новый ключ, и присвоить ему значение через равно.
Примечание:
Если значение с таким ключом уже существует, то вы просто измените это значение.
Вот результат работы:
Точно так же для вывода значения конкретного ключа или для работы, нужно использовать квадратные скобки, вот пример:
1 2 | # Выведет world print(b['hello']) |
Примечание:
Стоит учитывать тип данных ключа, если строка, то передаём строку, если число, то число.
Ещё есть несколько методов для работы со словарями, вот они:
- dict.clear() — Очищает словарь;
- dict.copy() — Возвращает копию словаря;
- dict.get(key[, default]) — Возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None);
- dict.keys() — Возвращает ключи в словаре;
- dict.pop(key[, default]) — Удаляет ключ и возвращает значение;
В качестве dict, это словарь которому все эти методы применяться.
Также вы можете использовать генераторы словарей, это аналог генераторов списков и пошeтся они почти точно также, вот:
1 | b = {a: a ** 2 for a in range(7)} |
Таким образом вы сгенерируете словарь.
Вывод:
В этой части учебника вы прочитали что такое в Python картежи и словари, как с ними работать, и зачем нужны.