- if dealing with millions data, an effcient container is needed: queue
- List: slow for inserting; Set: slow for checking, extension, searching, and soring
- Queue: FIFO and LIFO
FIFO queues (queue)
- used a lot in a lot of concurrent applications
- can have bounded to some max size of memory for a queue
- put() and get() . (note: the index of the elements in the queue starts from '1' instead of '0')
- full() and empty()
- elements in the queue can be different types
- Python implements queues on top of the collections.deque data structure. Deques are advanced data structures that permits efficient access to both ends of the collection. it provides a more flexible interface than is exposed by Queue.
LIFO queues (stack)
- use same API as FIFO queues: put() and get()
- working with the end of a list is an efficient operation, so LifoQueue uses a standard list under the hood
- use LifoQueue instead of List: the former supports clean concurrent access from multiple threads, if you need a stack-like behavior in a concurrent setting, a LifoQueue should be used.
Priority queues (heap)
- get() and put() API, but return the most "important" item instead of the ordered item.
- a common convention is to store tuples in the priority queue, where the first element in the tuple is the priority for the element, and the second element is the data. another common paradigm is to implement the __lt__ method.
- might be used by a search engine or recommendation tools
- almost universally implemented using the heap data structure
本文深入探讨了处理大量数据时所需的不同数据结构,包括队列、堆栈和优先级队列的特点与应用场景。队列适用于并发应用,堆栈利用列表实现高效操作,而优先级队列则用于搜索引擎和推荐系统中,通过堆数据结构实现高效检索。
1309

被折叠的 条评论
为什么被折叠?



