Python provides two special types of operators—membership operators and identity operators—which allow you to check for the existence of values in collections and to compare objects for their identity. These operators are commonly used in conditional statements to control the flow of a program. In this guide, we will break down each type of operator with simple explanations and examples to help beginners grasp the concepts easily.
Membership Operators
Membership operators are used to test if a value is a member of a sequence like a list, tuple, string, or dictionary. There are two membership operators in Python:
- in: Returns True if a value is found in a sequence.
- not in: Returns True if a value is not found in a sequence.
in Operator
The in operator checks whether a specified value exists within a sequence. If the value is found, it returns True; otherwise, it returns False.
Syntax:
value in sequence
Example:
fruits = ['apple', 'banana', 'cherry']
# Check if 'banana' is in the list
print('banana' in fruits) # Output: True
In this example, ‘banana’ is a member of the list fruits, so the output is True.
Practical Example:
Let’s say we are checking if a username exists in a list of registered users:
users = ['alice', 'bob', 'charlie']
# Check if 'dave' is a registered user
print('dave' in users) # Output: False
In this case, ‘dave’ is not in the users list, so it returns False.
not in Operator
The not in operator checks whether a value does not exist within a sequence. If the value is not found, it returns True; otherwise, it returns False.
Syntax:
value not in sequence
Example:
fruits = ['apple', 'banana', 'cherry']
# Check if 'grape' is not in the list
print('grape' not in fruits) # Output: True
In this example, ‘grape’ is not in the list fruits, so the output is True.
Practical Example:
You may want to check if a product is not available in an inventory:
inventory = ['laptop', 'phone', 'tablet']
# Check if 'monitor' is not in the inventory
print('monitor' not in inventory) # Output: True
Since ‘monitor’ is not present in the inventory, the result is True.
Use Cases of Membership Operators
- Data Validation: You can use membership operators to check if a certain input exists in a list of valid options.
- Search Operations: Check if a substring exists within a string or a key exists in a dictionary.
- Conditional Logic: Combine membership checks with conditional statements to control the program flow.
Example with Strings:
Membership operators also work with strings, where they check if a substring exists within a string.
text = "Hello, welcome to Python!"
# Check if 'Python' is in the string
print('Python' in text) # Output: True
In this case, the word ‘Python’ is found in the string text.
Identity Operators
Identity operators compare the memory locations of two objects to check if they refer to the same object. There are two identity operators in Python:
- is: Returns True if two variables refer to the same object.
- is not: Returns True if two variables do not refer to the same object.
is Operator
The is operator checks whether two variables point to the same object in memory. It returns True if they do, and False if they don’t.
Syntax:
object1 is object2
Example:
x = [1, 2, 3]
y = x # y refers to the same object as x
# Check if x and y refer to the same object
print(x is y) # Output: True
In this case, both x and y point to the same list in memory, so the result is True.
Practical Example:
If you have two variables pointing to the same object, you can check if they are identical:
a = 10
b = 10
# Check if a and b refer to the same object
print(a is b) # Output: True
In this case, Python optimizes small integers like 10, so a and b refer to the same object in memory.
is not Operator
The is not operator checks whether two variables refer to different objects in memory. It returns True if they do, and False if they don’t.
Syntax:
object1 is not object2
Example:
x = [1, 2, 3]
y = [1, 2, 3] # y is a different list with the same values
# Check if x and y refer to different objects
print(x is not y) # Output: True
Even though x and y contain the same values, they are different objects in memory, so the result is True.
Practical Example:
You can use the is not operator to ensure that two variables refer to different objects:
list1 = [10, 20, 30]
list2 = [10, 20, 30]
# Check if list1 and list2 are different objects
print(list1 is not list2) # Output: True
In this case, even though list1 and list2 contain the same values, they are different objects in memory, so True is returned.
Key Differences Between == and is
- ==: Compares the values of two objects. It returns True if the values are equal, even if they are different objects in memory.
- is: Compares the identities of two objects. It returns True only if both variables point to the same object in memory.
Example:
a = [1, 2, 3]
b = [1, 2, 3]
# Check if a and b have the same values
print(a == b) # Output: True
# Check if a and b refer to the same object
print(a is b) # Output: False
Here, a == b is True because the values in both lists are the same. However, a is b is False because a and b are different objects in memory.
Summary of Membership and Identity Operators
Operator | Description | Example | Output |
---|---|---|---|
in | Returns True if value is found in sequence | ‘apple’ in [‘apple’, ‘banana’] | True |
not in | Returns True if value is not in sequence | ‘grape’ not in [‘apple’, ‘banana’] | True |
is | Returns True if both variables point to the same object | x is y | True/False |
is not | Returns True if variables point to different objects | x is not y | True/False |
Summary
Membership and identity operators in Python are powerful tools for testing conditions in your code. Membership operators allow you to check for the presence of values in sequences like lists, strings, and dictionaries, while identity operators let you compare the memory locations of objects. Understanding these operators will help you write more efficient and readable Python code.
By practicing these operators in real-world scenarios, you’ll become more comfortable using them in your Python programming.
Discover more from lounge coder
Subscribe to get the latest posts sent to your email.