How to check if a deque is empty in Python?

If d is your deque, use

if d:
    # not empty
else:
    # empty

This will implicitly convert d to a bool, which yields True if the deque contains any items and False if it is empty.


There are two main ways:

1) Containers can be used as booleans (with false indicating the container is empty):

2) Containers in Python also have a __len__ method to indicate their size.

Here are a few patterns:

   non_empty = bool(d)           # Coerce to a boolean value  

   empty = not d                 # Invert the boolean value  

   if d:                         # Test the boolean value 
       print('non-empty')

   while d:                      # Loop until empty
       x = d.pop()
       process(x)

   if len(d) == 0:               # Test the size directly  
      print('empty')

The latter technique isn't as fast or succinct as the others, but it does have the virtue of being explicit for readers who may not know about the boolean value of containers.

Other ways are possible. For example, indexing with d[0] raises an IndexError for an empty sequence. I've seen this used a few times.

Hope this helps :-)

Tags:

Python