Python empty list - How to check if a list is empty

Python list may be empty and there are many ways to check if a list is empty or not. The below code follows the standard Python coding convention (PEP).

a = [2, 3, 5]
b = []

if a:
    print('a is Good')
else:
    print('a is Bad')

# a is Good

if b:
    print('b is Good')
else:
    print('b is Bad')

# b is Bad

It is recommended that you simply use if ... statement to check a list is empty.

Bad example

In fact, you can check if an object is list by counting the number of items. If it is 0, the list may be empty.

b = []

if 0 < len(b):
    print('b is Good')
else:
    print('b is Bad')

# b is Bad

But this is not pythonic and not recommended.

Index of empty list

Empty list has no index.

a = []

b = a[0]

# IndexError: list index out of range

Compare empty lists

In Python, empty lists are the same.

a = []
b = []

if a == b:
    print('a is b.')
else:
    print('a is not b.')

# a is b.

But ids of them are completely different. Python id represents the identity or memory address of an object. As you can see, ids of empty lists are different.

a = []
b = []

print(id(a))  # 4529691520
print(id(b))  # 4529692224

As explained in this post, the same values (int, float, ...) have the same ids but it is not true for lists and empty lists.

Python List

Python Tutorial