How to check if a deque is empty

Python

Python Problem Overview


Is try-catch the only method to do that?

Python Solutions


Solution 1 - 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.

Solution 2 - Python

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.

Solution 3 - Python

from collections import deque

d = deque()

print(True) if len(d) == 0 else print(false)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionIlya SmaginView Question on Stackoverflow
Solution 1 - PythonSven MarnachView Answer on Stackoverflow
Solution 2 - PythonRaymond HettingerView Answer on Stackoverflow
Solution 3 - PythonHemantaView Answer on Stackoverflow