Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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(2.7)是否有比标准库中的标准列表、集合、元组dict更多的数据结构可用?_Python_Python 2.7_Data Structures - Fatal编程技术网

Python(2.7)是否有比标准库中的标准列表、集合、元组dict更多的数据结构可用?

Python(2.7)是否有比标准库中的标准列表、集合、元组dict更多的数据结构可用?,python,python-2.7,data-structures,Python,Python 2.7,Data Structures,我一直在学习有关算法的coursera课程,在我看来,Python的数据结构集合并不像这里介绍的那样丰富 Java的集合似乎更加多样化 例如,如果我希望在末尾/中间插入一个集合,或者一个允许重复的排序数据结构。 我是否需要自己实现这些集合,或者我只是没有足够努力地寻找它们?Python的标准库和外部库包含许多额外的数据结构: 有关namedtuple、deque、Counters、OrderedDict和defaultdict,请参阅模块 请参阅模块了解堆,堆可用作优先级队列 有关n维矩阵数据

我一直在学习有关算法的coursera课程,在我看来,Python的数据结构集合并不像这里介绍的那样丰富

Java的集合似乎更加多样化

例如,如果我希望在末尾/中间插入一个集合,或者一个允许重复的排序数据结构。


我是否需要自己实现这些集合,或者我只是没有足够努力地寻找它们?

Python的标准库和外部库包含许多额外的数据结构:

  • 有关namedtuple、deque、Counters、OrderedDict和defaultdict,请参阅模块

  • 请参阅模块了解堆,堆可用作优先级队列

  • 有关n维矩阵数据类型,请参见,包括所有可思考的线性代数,类似于Matlab

  • 有关图形数据类型和算法,请参见

  • > p>参见以a为单位实现的列表,它具有更好的插入列表中间的性能。

  • 有关在排序列表中搜索/插入的信息,请参见

  • 有关时间计算的数据类型,请参见

  • 有关可用于线程安全传递消息的队列,请参阅

  • >P>一个双端队列,可以有效地添加和移除两边的项目(但中间的随机访问更昂贵)。

  • 有关带分数的旧式数学的数据类型,请参见

可能很难找到一个尚未在Python中实现的数据类型,或者在某些带有Python绑定的C/fortran库中实现的数据类型。可能有一些数据类型,如链表,在Python中没有真正使用,因为有更好/更简单的替代方法。

还有更多(链接到它们的文档引用):

如果您想走出Python标准库,那么有许多专门的库提供其他结构。以numpy为例,其描述非常全面,如下所示:

NumPy提供了一种N维数组类型,即ndarray,它 描述相同类型的“项”集合。这些项目可以是 例如,使用N个整数编制索引

所有Ndarray都是同质的:每个项目占用相同大小的块 所有块的解释方式都完全相同。怎么 数组中要解释的每个项都由单独的 数据类型对象,其中一个与每个数组关联。在里面 除了基本类型(整数、浮点等),数据类型 对象还可以表示数据结构

从数组中提取的项(例如通过索引)表示为 类型为内置数组标量类型之一的Python对象 努比。数组标量还允许更轻松地操作 数据的复杂排列