Python equivalent for C++ STL vector/list containers

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

in py >= 3.7, dict remember insert order. https://stackoverflow.com/a/51777540/13040423


In case you need TreeMap / TreeSet

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


Have a look at Python's datastructures page. Here's a rough translation:

  1. () => boost::Tuple (with one important distinction, you can't reassign values in a Python tuple)
  2. [] => std::vector (as the comments have aluded towards, lacks memory characteristics associated with vectors)
  3. [] => std::list
  4. {} => tr1::unordered_map or boost::unordered_map (essentially a hash table)
  5. set() => std::set

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.