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

sh7euo9m  于 2023-01-29  发布在  Python
关注(0)|答案(5)|浏览(129)

Python中是否有类似的东西,我可以将其用于类似于向量和列表的容器?
任何链接也会很有帮助。

t0ybt7op

t0ybt7op1#

你可以使用内置列表--底层实现类似于C++ vector。尽管有些东西不同--例如,你可以把不同类型的对象放在同一个列表中。
http://effbot.org/zone/python-list.htm

注意:请记住,vector和list是两种非常不同的数据结构。List是异构的,即可以存储不同的对象类型,而C++ vector是同构的。vector中的数据以***线性排列***存储,而 *list中的数据是对变量类型和内存地址的引用 * 的集合。

dzjeubhm

dzjeubhm2#

看看Python的datastructures页面,这里有一个粗略的翻译:
1.()=〉boost::Tuple(有一个重要的区别,你不能在Python元组中重新赋值)
1.[] =〉std::vector(正如评论中提到的,缺少与向量相关的内存特性)
1.[] =〉标准::列表
1.{} =〉tr 1::无序Map或boost::无序Map(本质上是一个哈希表)
1.设置()=〉标准::设置

ru9i0ody

ru9i0ody3#

| 皮|人民党|
| - ------|- ------|
| 双端|双端|
| PriorityQueue(或者您可以使用堆)|优先级队列|
| 集|无序集|
| 列表|向量|
| 缺省字符(整数)|无序Map|
| 列表|栈|
| 双端|排队|
| 获取(值,0)|无序Map|
在py〉= 3.7时,dict记住插入顺序。https://stackoverflow.com/a/51777540/13040423
如果您需要树Map/树集
https://github.com/grantjenks/python-sortedcontainers

gojuced7

gojuced74#

列表是序列。
参见http://docs.python.org/tutorial/datastructures.html
append类似于push_back,请参阅其他方法。

mwngjboj

mwngjboj5#

Python还有一个array类型作为标准库的一部分,它更高效,并且成员类型是受约束的。
如果您需要认真对待大型向量/数组的高效操作,也可以参考numpy(不是标准库的一部分)。

相关问题