List length and membership test in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
We want to understand how the time it takes to check a list's length and find an item grows as the list gets bigger.
How does the program's work change when the list size changes?
Analyze the time complexity of the following code snippet.
my_list = [1, 2, 3, 4, 5]
length = len(my_list)
if 3 in my_list:
print("Found 3")
else:
print("3 not found")
This code gets the length of a list and checks if the number 3 is inside it.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Checking if 3 is in the list (membership test).
- How many times: It may check each item once until it finds 3 or reaches the end.
As the list gets bigger, finding the length stays quick, but checking for 3 takes longer if 3 is near the end or not there.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | Length: 1 operation, Membership: up to 10 checks |
| 100 | Length: 1 operation, Membership: up to 100 checks |
| 1000 | Length: 1 operation, Membership: up to 1000 checks |
Pattern observation: Length check is always fast and constant; membership test grows linearly with list size.
Time Complexity: O(n)
This means the time to check if an item is in the list grows in direct proportion to the list size.
[X] Wrong: "Getting the length of a list takes time proportional to the list size."
[OK] Correct: The length is stored and accessed instantly, so it takes the same short time no matter how big the list is.
Understanding how list operations scale helps you write efficient code and answer questions about performance clearly and confidently.
"What if we changed the list to a set? How would the time complexity of the membership test change?"
Practice
What does the len() function do when used with a list in Python?
Solution
Step 1: Understand the purpose of
Thelen()len()function counts how many elements are inside a list.Step 2: Compare with other options
Checking membership usesin, adding usesappend(), removing usespop().Final Answer:
It returns the number of items in the list. -> Option DQuick Check:
len()counts items [OK]
- Confusing len() with in operator
- Thinking len() adds or removes items
- Mixing up list methods with functions
Which of the following is the correct syntax to check if the number 5 is in the list nums?
nums = [1, 3, 5, 7]
Solution
Step 1: Recall correct membership syntax
Python usesinto check if an item is inside a list:item in list.Step 2: Check each option
Onlyif 5 in nums:matches correct syntax; others are invalid Python.Final Answer:
if 5 in nums: -> Option CQuick Check:
Useinfor membership test [OK]
- Writing 'inside' or 'contains' instead of 'in'
- Reversing order like 'list in item'
- Using invalid keywords for membership
What will be the output of this code?
fruits = ['apple', 'banana', 'cherry']
print(len(fruits))
print('banana' in fruits)
print('orange' in fruits)Solution
Step 1: Calculate length of the list
The list has 3 items: 'apple', 'banana', 'cherry', solen(fruits)is 3.Step 2: Check membership for 'banana' and 'orange'
'banana' is in the list, so'banana' in fruitsis True. 'orange' is not, so'orange' in fruitsis False.Final Answer:
3 True False -> Option AQuick Check:
len=3, banana in list=True, orange in list=False [OK]
- Confusing True/False for membership
- Miscounting list length
- Expecting syntax error for correct code
Find the error in this code snippet:
items = [10, 20, 30]
if 20 in items
print("Found 20")Solution
Step 1: Check syntax of if statement
Python requires a colon ':' at the end of the if condition line.Step 2: Identify the missing colon
The code hasif 20 in itemswithout a colon, causing a syntax error.Final Answer:
Missing colon ':' after the if condition. -> Option AQuick Check:
if statements need ':' [OK]
- Forgetting colon after if condition
- Misusing 'in' operator syntax
- Using parentheses instead of brackets for lists
You have a list numbers = [2, 4, 6, 8]. You want to check if the list has exactly 4 items and if the number 5 is not in the list. Which code correctly does this?
Solution
Step 1: Check list length condition
Uselen(numbers) == 4to test if list has exactly 4 items.Step 2: Check membership condition
Use5 not in numbersto confirm 5 is not in the list.Step 3: Combine conditions correctly
Useandto require both conditions true together.Final Answer:
if len(numbers) == 4 and 5 not in numbers: print("Condition met") -> Option BQuick Check:
Length check and membership negation combined with and [OK]
- Using single '=' instead of '==' for comparison
- Using or instead of and for both conditions
- Checking for 5 in list instead of not in
