Изучаем структуры данных с Python. Часть 1
Для программирования и информатики структуры данных являются основным предметом. Он используется почти во всех областях компьютерных наук. В данной серии статей я опишу структуры данных, которые имеют решающее значение для науки о данных и программирования, а также то, что означают структуры данных в целом.
Что же такое структуры данных?
В информатике структура данных - это формат организации, управления и хранения данных, который обеспечивает эффективный доступ и модификацию. Это структуры, которые могут хранить, организовывать и помогать, нам изменять множество данных.
Списки, словари и массивы - это простые структуры данных, присутствующие во всех языках программирования. Хотя их синтаксис варьируется, их логика остается неизменной, поэтому вы можете адаптировать примеры, которые мы будем проводить на Python, к таким языкам, как Java и C++.
Словари - Dictionaries, Карты - Map, Хэш-Таблицы - Hash Tables .
В Python словари предназначены для хранения произвольного количества данных, каждый со своими ключевыми словами. Типы Map также называются хэш-картами и таблицами поиска или ассоциативными массивами. Это облегчает организацию данных, связанных с определенным ключевым словом, и представляет их в более организованной форме. Например, словарь может хранить атрибуты (данные), такие как возраст, дата рождения, гороскоп на основе ключевого слова name.
data = { "Mark": 12, "Alice": 23, "David": 8, }
data["Mark"]
вывод: 12
Вы также можете ввести фигурные скобки, чтобы они помещались в одну строку, но словари с большими данными будут путаться, поэтому лучше использовать отступы.
Orderdict, Defaultdict, Chainmap.
У нас есть словари с различными функциями. Хотя у каждого из них своя цель, я собрал их под одним названием, потому что они находятся в одной библиотеке. Вам нужна библиотека collections для доступа к этим структурам данных, поэтому не забудьте установить ее на свой компьютер. Как следует из названия, OrderedDict - это словарь, который не забывает порядок ваших ключей и действует соответственно.
import collections as cs
dict1 = cs.OrderedDict(one=1,two=2)
print(dict1)
# Добавление новых данных
dict1["four" = 4]
print(dict1)
# вывод:
([('one', 1), ('two', 2)]) ([('one', 1), ('two', 2), ('three', 3)])
Вы можете использовать defaultdict для подготовки сообщений, которые будут информировать вас, когда вы попытаетесь извлечь данные, которых нет в словарях. Подготовка сообщений об ошибках простым для вас способом может помочь на этапе отладки.
from collections import defaultdict
# Создадим функцию и передадим ее в качестве аргумента
def error():
return "Index Not Found"
x = defaultdict(error)
# Создание 10 индексов и значений в словаре
for i in range(0,10):
x[i] = i
# Попытка обращения к несуществующему индексу
print(x[11])
вывод: Index Not Found
Если у вас есть несколько словарей, можно превратить их в один с помощью Chainmap. Чаще всего используется со словарями.
from collections import ChainMap
dict1 = {"1": 1, "2": 2}
dict2 = {"3": 3, "4": 4}
main = ChainMap(dict1, dict2)
print(main["3"] , main["1"])
вывод: 3 , 1
Таким образом мы разобрали некоторые основные структуры данных, представленные в Python. При этом, имея представления об основных структурах данных, намного легче строить работающие алгоритмы.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.