Skip to main content

How to Compare Multiple Variables in Python

This guide explores various efficient and Pythonic methods for comparing multiple variables in Python. We'll cover:

  • Checking if multiple variables have the same value.
  • Checking if multiple variables are equal to a specific value.
  • Checking if a variable is not equal to multiple values.
  • Checking if a variable is equal to any of several values.
  • Using the all() and any() functions for cleaner comparisons.

Checking if All Variables Have the Same Value

Using multiple equality comparisons (==)

The simplest way to check if all variables have the same value is to chain equality comparisons:

a = 123
b = 123
c = 123

if a == b == c:
print('Multiple variables are equal')
else:
print('Multiple variables are not equal')

Output:

Multiple variables are equal
  • This approach is readable and efficient for a small number of variables.

Checking equality within a sequence (list/tuple)

If your variables are already in a list or tuple (or you can easily put them in one), you can use the count() method and check the length, or use the all() function:

a = 123
b = 123
c = 123

my_list = [a, b, c]

#Method 1: count()
if my_list.count(my_list[0]) == len(my_list):
print('Multiple variables are equal') # Output: Multiple variables are equal
else:
print('Multiple variables are not equal')

#Method 2: all()
if all(item == my_list[0] for item in my_list):
print('Multiple variables are equal') # Output: Multiple variables are equal

  • count() returns the number of occurrences of a value in a list.
  • all() is used with a generator expression that checks if all the elements of the list are equal to the first element of the list.
  • Both methods are very efficient for checking equality within a sequence.

Checking if All Variables Equal a Specific Value

To check if all variables are equal to a specific value, you can again use chained equality or all():

a = 123
b = 123
c = 123

# Chained equality
if a == b == c == 123:
print('Variables are equal to the value') # Output: Variables are equal to the value

# Using all() with a list/tuple
variables = [a, b, c]
if all(v == 123 for v in variables):
print('Variables are equal to the value') # Output: Variables are equal to the value

Checking if a Variable is NOT Equal to Multiple Values

Using not in

The most readable and Pythonic way to check if a variable is not equal to any of several values is to use the not in operator:

my_str = 'another'
multiple_values = ['tutorial', 'reference', 'com']

if my_str not in multiple_values:
print('The variable is NOT equal to any of the specified values')
else:
print('The variable is equal to one of the specified values')

print(my_str not in multiple_values) # Output: True

Output:

The variable is NOT equal to any of the specified values
True
  • The not in method is much more readable than multiple chained != conditions.

Using all()

You can also use all() with a generator expression, which is functionally equivalent to not in but might be preferred in some contexts for consistency:

my_str = 'another'
multiple_values = ['tutorial', 'reference', 'com']

if all(my_str != item for item in multiple_values):
print('The variable is NOT equal to any of the specified values')
else:
print('The variable is equal to one or more of the specified values')

Output:

The variable is NOT equal to any of the specified values

Checking if a Variable Equals ANY of Several Values

To check if a variable is equal to any of several values, use the in operator:

my_str = 'tutorial'
two_values = ('tutorial', 'reference') # Tuple is slightly more efficient than a list

if my_str in two_values:
print('The variable is equal to one of the two values') # Output: The variable is equal...
else:
print('The variable is NOT equal to any of the specified values')
  • my_str in two_values checks if the string is equal to any of the values, and returns True if it is.

Using any()

For completeness, here's the any() approach, which is equivalent but less readable than in:

my_str = 'tutorial'
two_values = ('tutorial', 'reference')

if any(my_str == item for item in two_values):
print('The variable is equal to one of the two values') # Output: The variable is equal...
else:
print('The variable is NOT equal to any of the specified values')

Conclusion

This guide presented different ways to compare variables and values in Python.

You learned how to:

  • compare the same value to a list, using all() or the in operator.
  • Use chained equality checks (a == b == c) when you need to verify that all variables hold the same value.
  • Use in and not in for concise membership testing. For checking multiple variables against a single value or another set of variables, all() with a generator expression is generally the most efficient and readable approach.

Choose the technique that best reflects the logic of your comparison and enhances code clarity.