Python等效于C++ STL向量/列表容器

pan*_*ami 17 c++ python containers list vector

Python中是否存在类似于容器的东西,就像向量和列表一样?

任何链接也会有所帮助.

Joh*_*ski 12

您可以使用内置列表 - 底层实现类似于C++向量.虽然有些东西不同 - 例如,您可以将不同类型的对象放在同一个列表中.

http://effbot.org/zone/python-list.htm

  • 数组被称为列表(它通常用作链表的快捷方式,它是一种完全不同的数据结构)是 Python 中为数不多的真正不幸的事情之一。 (2认同)

whe*_*ies 12

看看Python的数据结构页面.这是一个粗略的翻译:

  1. ()=> boost :: Tuple(有一个重要的区别,你不能在Python元组中重新分配值)
  2. [] => std :: vector(因为评论已经过了,缺乏与向量相关的记忆特征)
  3. [] => std :: list
  4. {} => tr1 :: unordered_map或boost :: unordered_map(本质上是一个哈希表)
  5. set()=> std :: set

  • []!= std :: list. (4认同)
  • @Amber:没有Python实现敢于使用内置`list`类型的链表.这完全搞砸了依赖于索引为O(1)的每一段代码(一个完全有效的假设) - 即非常多.我们可以放心地忽略这种情况. (2认同)

wuy*_*udi 7

py 程序文件
双端队列 双端队列
PriorityQueue(或者你可以使用heapq) 优先队列
无序集
列表 向量
默认字典(int) 无序映射
列表
双端队列 队列
字典.get(val,0) 无序映射
大批 大批
np.数组 瓦阵列

valarray 是穷人的 np.array。

在 py >= 3.7 中,dict 记住插入顺序。/sf/answers/3624427831/


如果您需要 TreeMap / TreeSet

https://github.com/grantjenks/python-sortedcontainers