Python.
Структуры данных.



О преподавателе
- Закончил факультет экспериментальной и теоретической физики МИФИ
- 5 лет веб-разработки в Mail.Ru
- Python, Go, и куда сейчас без Javascript
- Автор open-source проекта Centrifugo

Определение
Структура данных — программная единица, позволяющая хранить и обрабатывать множество однотипных или логически связанных данных, предоставляющая набор функций для манипуляции данными (интерфейс структуры данных).

Выбор структуры
- Быстродействие определенных операций интерфейса
- Размер в оперативной памяти
- Удовлетворение бизнес-требованиям

Порядки роста O(f)


Проблема 2038 года


Python time!

Перемещаемся в Jupyter notebook

Integer
typedef struct {
PyObject_HEAD
long ob_ival;
} PyIntObject;

String
typedef struct {
PyObject_VAR_HEAD
long ob_shash;
int ob_sstate;
char ob_sval[1];
} PyStringObject;

List
typedef struct {
PyObject_VAR_HEAD
PyObject **ob_item;
Py_ssize_t allocated;
} PyListObject;

Tuple
typedef struct {
PyObject_VAR_HEAD
PyObject *ob_item[1];
} PyTupleObject;

Dict
typedef struct {
Py_ssize_t me_hash;
PyObject *me_key;
PyObject *me_value;
} PyDictEntry;
typedef struct _dictobject PyDictObject;
struct _dictobject {
PyObject_HEAD
Py_ssize_t ma_fill; /* # Active + # Dummy */
Py_ssize_t ma_used; /* # Active */
Py_ssize_t ma_mask; /* equal to size of ma_table - 1; calc index*/
PyDictEntry *ma_table;
PyDictEntry *(*ma_lookup)(PyDictObject *mp, PyObject *key, long hash);
PyDictEntry ma_smalltable[PyDict_MINSIZE];
};
Python_02
By Emelin Alexander
Python_02
- 987