455 читали · 4 года назад
Какова сложность операции добавления элемента в список?
Чтобы ответить на этот вопрос, нужно разобраться, как списки устроены на низком уровне. Определение списка в исходниках CPython выглядит так: typedef struct {  PyObject_VAR_HEAD  PyObject **ob_item;  Py_ssize_t allocated; } PyListObject; Здесь ob_item -- это непрерывный массив указателей на элементы списка, а allocated содержит длину массива. Вот и все, что нужно знать, чтобы отвечать на вопросы о сложности операций со списками.  Во-первых, отсюда сразу видно, что получить длину массива можно очень быстро, за O(1), потому что не нужно пересчитывать все элементы...
15,7 тыс читали · 3 года назад
Работа со списками (массивами) в Python
В Python список (list) является структурой данных, которая позволяет хранить упорядоченный набор элементов любого типа. Списки могут содержать элементы разных типов, таких как числа, строки, логические значения и другие списки. Допустим, вы хотите записать список задач, которые вам нужно выполнить в течение дня. Без использования списков вы можете завести отдельные переменные для каждой задачи: task1 = "Приготовить завтрак" task2 = "Помыть посуду" task3 = "Сходить в магазин" Однако, если у вас много задач, то такой подход может стать неудобным и сложным для поддержки...