How to check/find if an item is in a DEQUE
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.
Introduction
If you are using Python's collections.deque, the easiest way to check whether an item exists is the in operator. A deque supports iteration, so membership testing works naturally. The important detail is performance: unlike a set or dictionary, deque membership is a linear scan, not constant-time lookup.
The Simple Answer: Use in
Python deque objects support membership testing directly.
This is the most idiomatic solution for a yes-or-no existence check.
Under the hood, Python scans through the deque until it finds a match or reaches the end.
If You Need the Position, Convert or Enumerate
A deque does not provide a list-style .index() method in the way many developers expect to use a sequence container. If you need the position of a matching element, enumerate it manually.
That works, but it is still an O(n) scan.
If positional access is central to the algorithm, a list may be a better data structure than a deque.
Counting Matches
If you want to know whether an item occurs and how many times, count is available.
This is also a linear scan, but it is useful when duplicates matter.
Why Membership Is Not Fast Like a Set
A deque is optimized for appending and popping from both ends. It is not designed for fast arbitrary lookup.
That means these are good deque operations:
- '
append' - '
appendleft' - '
pop' - '
popleft'
But membership tests still require traversal.
If your code repeatedly asks "is this value present?" and rarely uses the double-ended queue behavior, a set may be the more appropriate structure.
That is usually much faster for repeated membership checks.
A Practical Example
Suppose you are doing breadth-first traversal and keep a deque of nodes to visit.
This is fine for small queues or occasional checks. But if the queue gets large and membership checks happen often, a paired set is usually better.
Now:
- the deque preserves order and cheap pops from the left
- the set provides fast membership checks
That combination is common in graph algorithms.
When a Deque Is Still the Right Tool
A deque is still the right structure when the primary operations are queue-like or stack-like behavior at both ends.
Use it when you need:
- fast FIFO processing with
popleft - occasional membership checks only
- bounded history windows with
maxlen
Do not replace it with a set unless ordering and left-pop behavior are no longer important.
Common Pitfalls
- Assuming deque membership is constant time like a set. It is a linear scan.
- Choosing a deque when the workload is really dominated by lookups instead of end operations.
- Converting the deque to a list repeatedly just to test membership.
item in dequealready works. - Forgetting that a separate set may be needed when queue order and fast membership both matter.
- Using the wrong data structure because the name "deque" sounds more general-purpose than it really is.
Summary
- In Python, check whether a value is in a deque with
item in dq. - Membership testing works, but it is
O(n)rather than constant time. - Use
countif you need the number of matches. - Enumerate manually if you need a position.
- Pair a deque with a set when you need both ordered queue behavior and fast membership checks.
Related reading
- How to checkout old git commit including all submodules recursively?
- How to code the maximum set packing algorithm?
- How to compare objects by multiple fields
- How to compare two dates?
- How to choose Kafka transactional.id in a Kubernetes (Producer side only transaction) set up
- How to clear navigation Stack after navigating to another fragment in Android
- How to choose an AWS profile when using boto3 to connect to CloudFront
- How to close Boto S3 connection?

DSA Fundamentals
Master algorithmic patterns and data structures through hands-on LeetCode-style problems - from arrays and hashing to dynamic programming and advanced graphs.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Data Structures & Algorithms practice on Codemia
Step through 300 algorithm problems with animated visualisers that show the data structure changing as the code runs.