2016-06-02 6 views
-1

Я изучаю, как программировать на питоне, а также изучаю теорию как часть курса по информатике. В программировании я знаю, что я могу добавить дополнительные переменные в массив только с помощью функции .append, однако в моих классах теории нам говорят, что массивы не могут ни увеличиваться, ни уменьшаться.Статические массивы в Python

Как это работает в python?

+3

В вашем классе теории вы должны изучать C++ или C. Не путайте. – LAL

+0

Определение «массив» из вашего класса теории, похоже, больше соответствует определению python ['tuple'] (https : //docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences). В общем, концепции структуры данных являются специфичными для языка. Матрицы C, C++ и Java имеют фиксированный размер. Python имеет разные структуры данных. – dhke

+0

Списки Python - это совсем другие структуры данных из массивов C. Вот почему они называются 'list' вместо' array'. Массивы намного эффективнее с точки зрения системных ресурсов. Списки Python более гибкие и удобны для использования программистами. –

ответ

1

Python использует изменяемый размер векторов под капотом. Они поддерживают знание количества элементов в списке, а также то, что представляет собой текущая общая емкость. Когда вы пытаетесь добавить еще один элемент за пределы размера коллекции, он выделяет новый массив с большей емкостью и заполняет его указателями на элементы из исходного массива. Это похоже на то типа ArrayList в Java, за исключением того, что нет никакого способа, чтобы определить потенциал в питона

Подробное сообщение об осуществлении здесь: http://www.laurentluce.com/posts/python-list-implementation/

Они не связаны списки; там нет связанного типа списка, встроенного в python, и шаблоны производительности разные.

-1

Список в python сродни связанному списку. Они могут расти динамически, и каждый элемент может указывать на что угодно.

Если вам интересно о том, что идентификатор динамична и то, что не в Python, то вы должны прочитать о переменчивости против неизменности: https://codehabitude.com/2013/12/24/python-objects-mutable-vs-immutable/

+2

Списки Python - это * не * связанные списки. – Daenyth

+0

Akin! = Идентичный. – Will

+0

@ Будут ли они не похожи друг на друга. Они оба заказанные коллекции, но это не так много. – Daenyth

Смежные вопросы