【发布时间】:2011-06-05 22:39:52
【问题描述】:
Python 中是否有类似的东西可以用于类似于向量和列表的容器?
任何链接也会有所帮助。
【问题讨论】:
-
对于链表:
[a0,[a1,[a2,[a3,[...]]]]]
标签: c++ python list vector containers
Python 中是否有类似的东西可以用于类似于向量和列表的容器?
任何链接也会有所帮助。
【问题讨论】:
[a0,[a1,[a2,[a3,[...]]]]]
标签: c++ python list vector containers
您可以使用内置列表 - 底层实现类似于 C++ 向量。尽管有些事情有所不同 - 例如,您可以将不同类型的对象放在同一个列表中。
http://effbot.org/zone/python-list.htm
注意:请记住,向量和列表是两种非常不同的数据结构。列表是异构的,即可以存储不同的对象类型,而 C++ 向量是同构的。向量中的数据以线性排列的形式存储,而列表中的数据是对变量类型和内存地址的引用集合。
【讨论】:
【讨论】:
查看 Python 的 datastructures 页面。这是一个粗略的翻译:
【讨论】:
[] != std::list。
list 类型使用链表。这将完全搞砸依赖索引为 O(1) 的每一段代码(一个完全有效的假设) - 即非常多。我们可以放心地忽略这种情况。
std::list。
| py | cpp |
|---|---|
| deque | deque |
| PriorityQueue (or you may use heapq) | priorityqueue |
| set | unordered_set |
| list | vector |
| defaultdict(int) | unordered_map |
| list | stack |
| deque | queue |
| dict .get(val,0) | unordered_map |
在 py >= 3.7 中,dict 记住插入顺序。 https://stackoverflow.com/a/51777540/13040423
如果你需要 TreeMap / TreeSet
【讨论】: