Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的静态数组_Python_Arrays_Python 3.x_Static - Fatal编程技术网

Python中的静态数组

Python中的静态数组,python,arrays,python-3.x,static,Python,Arrays,Python 3.x,Static,我正在学习如何用python编程,同时作为计算机科学课程的一部分学习理论。在编程中,我知道我可以通过使用.append函数向数组中添加额外的变量,但是在我的理论课中,我们被告知数组的大小既不能增加也不能减少 这在python中是如何工作的?python中的列表类似于链表。它们可以动态增长,每个元素都可以指向任何东西 如果您对Python中的动态id和非动态id感到好奇,那么您应该阅读关于可变性和不可变性的内容: Python在引擎盖下使用可调整大小的向量。它们维护列表中有多少元素以及当前总容量的

我正在学习如何用python编程,同时作为计算机科学课程的一部分学习理论。在编程中,我知道我可以通过使用.append函数向数组中添加额外的变量,但是在我的理论课中,我们被告知数组的大小既不能增加也不能减少


这在python中是如何工作的?

python中的列表类似于链表。它们可以动态增长,每个元素都可以指向任何东西

如果您对Python中的动态id和非动态id感到好奇,那么您应该阅读关于可变性和不可变性的内容:

Python在引擎盖下使用可调整大小的向量。它们维护列表中有多少元素以及当前总容量的知识。当您尝试添加超出集合大小的另一个元素时,它会分配一个容量更大的新数组,并使用指向原始备份数组中的项的指针填充该数组。这类似于java的ArrayList类型,只是无法在python中指定容量

有关实施的详细帖子如下:


它们不是链表;python中没有内置链表类型,性能模式也不同。

它不是python,但在将来的某个时候,您也会在其他语言中看到这一点。解决这个问题的另一种常用方法是使用动态数组,它不需要使用向量或链表

实际上,您创建的数组大小有限。如果用户调用append,而阵列中没有更多空间。您将创建一个比旧阵列大2倍的新阵列。然后复制所有元素并附加新元素


2x实际上很重要,因为它保持插入时间摊销不变。(更高级的算法)

在你的理论类中,你必须学习C++或C。不要混淆。从理论类中定义“数组”似乎更符合Python的定义。通常,数据结构概念是特定于语言的。C、C++和java数组的大小固定。Python有不同的数据结构。Python列表是与C数组完全不同的数据结构。这就是为什么它们被称为
list
,而不是
array
。阵列在系统资源方面效率更高。Python列表对于程序员来说更加灵活和方便,我不认为这个问题太宽泛。这里的主要问题似乎是问python列表是如何实现的。这一点也不过分。Python列表不是链表。类似!=一模一样。@Will他们也不一样。它们都是有序的集合,但这并不多。
类似于:形容词:性质相似。
你的学究作风对任何人都没有帮助。有些人说话抽象。