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

时间:2011-01-09 00:58:51

标签: c++ python list vector containers

Python中是否有类似的东西可用于容器,就像矢量和列表一样?

任何链接也会有所帮助。

5 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:9)

查看Python的datastructures页面。这是一个粗略的翻译:

  1. ()=> boost :: Tuple(有一个重要的区别,你不能在Python元组中重新分配值)
  2. [] => std :: vector(正如评论所指出的那样,缺乏与向量相关的记忆特征)
  3. [] =>的std ::列表
  4. {} => tr1 :: unordered_map或boost :: unordered_map(本质上是一个哈希表)
  5. set()=>的std ::设置

答案 2 :(得分:1)

<头>
py cpp
双端队列 双端队列
PriorityQueue(或者你可以使用 heapq) 优先队列
设置 unordered_set
列表 向量
defaultdict(int) unordered_map
列表 堆栈
双端队列 排队
dict .get(val,0) unordered_map
<块引用>

在 py >= 3.7 中,dict 记住插入顺序。 https://stackoverflow.com/a/51777540/13040423


如果你需要 TreeMap / TreeSet

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

答案 3 :(得分:0)

列表是序列。

请参阅http://docs.python.org/tutorial/datastructures.html

append就像push_back一样,也参见其他方法。

答案 4 :(得分:0)

Python还将array类型作为标准库的一部分,它更有效,成员类型受到约束。

如果您需要认真对待大型矢量/数组的有效操作,您也可以查看numpy(不是标准库的一部分)。