Структуры данных — это важный элемент программирования, требуемый для написания более сложных программ. В этом материале будут примеры, которые наглядно продемонстрируют особенности структур данных, объяснят примеры присваивания и инициализации.
Инициализировать список, кортеж и словарь можно несколькими способами. Один из наиболее распространенных — присвоить соответствующие символы переменной. Для списка эти символы — []
, для кортежа — ()
, а для словаря — {}
. Если присвоить эти символы без значений внутри, то будут созданы соответствующие пустые структуры данных.
Функции, которые будут использоваться дальше, являются альтернативными способами создания списков, кортежей и словарей. Их необязательно знать, но лучше запомнить, ведь они могут встретиться в коде других разработчиков.
Где используется
Структуры данных используются во всех аспектах программирования.
- Списки: содержат значения. Ими могут быть числа, строки, имена и так далее:
- Модели автомобилей;
- Имена собак;
- Посещенные страны;
- Посетители магазина и так далее;
- Кортежи: этот тип данных очень похож на список, но с одним исключением. После создания кортежа его значения нельзя менять. Списки — изменяемые, а кортежи — нет. Это может понадобиться в определенных случаях для достижения безопасности или просто удобства. В кортежах могут, например, храниться:
- Все месяцы года;
- Дисциплины Олимпийских игр;
- Штаты США;
Важно только отметить, что кортежи не являются вообще неизменяемыми, ведь вы всегда можете переписать код, поменяв или удалив определенные значения. Речь идет о том, что значения не могут быть изменены после создания — во время работы программы.
- Словари — это пары из ключа и значения. Словари также являются изменяемыми. Это удобная структура данных, которая подходит для сохранения значения с определенными дополнительными параметрами, например:
- Данные клиента включая список его покупок
- Названия стран + их количество олимпийских медалей
- Автомобильные бренды и их модели
- Страны с количеством ДТП с летальным исходом
- Функции
list()
иdict()
очень простые. Они помогают создавать соответствующие структуры данных.
Рекомендации по работе со структурами данных
- List(), dict() и float() используют круглые скобки, потому что они являются функциями;
- Скобки сами по себе представляют кортеж, и их не стоит путать со скобками в функциях, например, list();
- При создании пустого списка нужно использовать квадратные, а не круглые скобки:
[]
.
Функция №1: list()
У функции list()
очень простой сценарий применения.
C помощью скобок создается список. После этого выводится переменная с присвоенным ей пустым списком. Выводится «[]», что указывает пусть и на пустой, но список. После этого выводится подтверждение того, что это действительно список.
>>> my_first_list = []
>>> print(my_first_list )
>>> print(type(my_first_list ))
[]
<class 'list'>
В следующем примере можно добиться того же результата, что и в первом, но уже с помощью функции list()
.
>>> my_first_list = list()
>>> print(my_first_list)
>>> print(type(my_first_list))
[]
<class 'list'>
Функция №2: dict()
Рассмотрим функцию dict()
, с помощью которой можно создать словарь Python.
>>> my_first_dictionary = {}
>>> print(my_first_dictionary)
>>> print(type(my_first_dictionary))
{}
<class 'dict'>
И вот еще один пример создания пустого словаря. Тот же результат, но с помощью функции dict()
.
>>> my_first_dictionary = dict()
>>> print(my_first_dictionary)
>>> print(type(my_first_dictionary))
{}
<class 'dict'>
Функция №3: tuple()
Функция tuple()
для создания кортежа Python. Пример с присваиванием переменной пустого кортежа.
>>> my_first_tuple = ()
>>> print(my_first_tuple)
>>> print(type(my_first_tuple))
()
<class 'tuple'>
И снова тот же результат, но уже с помощью функции tuple()
.
>>> my_first_tuple = tuple()
>>> print(my_first_tuple)
>>> print(type(my_first_tuple))
()
<class 'tuple'>
Советы:
- Кортеж — отличная альтернатива списку для тех ситуаций, когда в дальнейшем не требуется менять значения внутри этой структуры данных.
- Словари — идеальная структура для хранения пар ключ-значение.
Создадим список со значениями внутри.
>>> mylist = ["лыжные ботинки", "лыжи", "перчатки"]
>>> print(mylist)
>>> print(type(mylist))
["лыжные ботинки", "лыжи", "перчатки"]
<class 'list'>
В этом примере список состоит из 3 строковых значений. Но все три типа — списки, словари и кортежи — могут включать разные типы данных.
Теперь создадим словарь с этими значениями.
>>> mydict = {"лыжные ботинки": 3, "лыжи": 2, "перчатки": 5}
>>> print(mydict)
>>> print(type(mydict))
{"лыжные ботинки": 3, "лыжи": 2, "перчатки": 5}
<class 'dict'>
В этом примере создается словарь. Он присвоен переменной mydict
, которая состоит из 3 ключей: “лыжные ботинки”, “лыжи” и “перчатки”. Каждому ключу присвоено свое значение: 3, 2 и 5 соответственно.
Теперь создадим список со значениями разных типов.
>>> mylist = ["карабины", False, "порошок", 666, 25.25]
>>> print(mylist)
>>> print(type(mylist))
["карабины", False, "порошок", 666, 25.25]
<class 'list'>
В этом примере список включает 5 значений четырех разных типов: строка, булев тип, строка, целое число и число с плавающей точкой.
Наконец, создадим пример кортежа.
>>> mytuple = ("карабины", False, "порошок", 666, 25.25)
>>> print(mytuple)
>>> print(type(mytuple))
("карабины", False, "порошок", 666, 25.25)
<class 'tuple'>
Единственное отличие здесь в том, что используются круглые ()
, а не квадратные []
скобки.
Мы кратко рассмотрели структуры данных, в следующих уроках разберем каждый подробно.
Задачи к уроку
Попробуйте решить задачи к этому уроку для закрепления знаний.
1. Создайте пустой список, определите его тип и выведите в консоль.
# данный код
gift_list=
answer_1=
print(answer_1)
# требуемый вывод:
# <class 'list'>
2. Допишите код, чтобы gift_list
был заполненным кортежем. Порядок элементов значения не имеет.
gifts=
print(gifts)
# требуемый вывод:
# ("Камера", "Наушники", "Часы")
3. Исправьте ошибки в коде, для получения требуемого вывода.
stats = {1 - 10, 220, 3 - 30, 4 - 40, 5 - 50 6 - 60}
print(stat)
# требуемый вывод:
# {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}
Файл со всем заданиями: https://gitlab.com/PythonRu/python-dlya-nachinayushih/-/blob/master/lesson_5.py.
Тест по конвертации типов данных
Пройдите тест к этому уроку для проверки знаний. В тесте 5 вопросов, количество попыток неограниченно.
Если нашли ошибку, опечатку или знаете как улучшить этот урок, пишите на почту. Ее можно найти внизу сайта.