Is there something similar in Python that I would use for a container that's like a vector and a list?
Any links would be helpful too.
Is there something similar in Python that I would use for a container that's like a vector and a list?
Any links would be helpful too.
You can use the inbuilt list - underlying implementation is similar to C++ vector. Although some things differ - for example, you can put objects of different type in one and the same list.
http://effbot.org/zone/python-list.htm
N.B.: Please keep in mind that vector and list are two very different data structures. List are heterogeneous, i.e. can store different object types, while C++ vectors are homogeneous. The data in vectors is stored in linear arrangement whereas in list is a collection of references to the type and the memory address of the variables.
Have a look at Python's datastructures page. Here's a rough translation:
[]
!= std::list
. –
Much list
type. That would totally screw about every piece of code that relies on indexing being O(1) (a totally valid assumption) - i.e. really much. We can safely ignore this scenario. –
Seminarian std::list
than the CPython implementation. –
Much set() => std::unordered_set
, since it's hashset –
Hierarchize 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 |
array | array |
np.array | valarray |
valarray is poor man's np.array.
in py >= 3.7, dict remember insert order. https://mcmap.net/q/75657/-how-do-you-retrieve-items-from-a-dictionary-in-the-order-that-they-39-re-inserted
In case you need TreeMap / TreeSet
The cstl
library wrapped commonly used C++ STL libraries including vector
, unordered_map
, and unordered_set
for Python. It uses purely C++ implementation and does not have the copy-on-write issue that happens in all python objects. See
https://github.com/fuzihaofzh/cstl for how to install and use.
Install it from pip
pip install cstl
Convert python objects into cstl objects:
import cstl
# Directly covert containers from python
v = cstl.frompy({"1":[1,2,3], "2":[4,5,6]}) # convert python object to cstl object
v["1"][2] = 10 # access cstl object
pv = cstl.topy(v) # convert cstl object to python object
print(pv)
Lists are sequences.
see http://docs.python.org/tutorial/datastructures.html
append is like push_back, see the other methods as well.
© 2022 - 2024 — McMap. All rights reserved.
[a0,[a1,[a2,[a3,[...]]]]]
– Gerontocracy