Length and iteration methods in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When we use length and iteration methods in Python, we want to know how the time to run the code changes as the input grows.
We ask: How many steps does the program take when the input gets bigger?
Analyze the time complexity of the following code snippet.
def sum_elements(lst):
total = 0
n = len(lst)
for i in range(n):
total += lst[i]
return total
This code calculates the sum of all numbers in a list by first getting its length, then adding each element one by one.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through each element of the list once.
- How many times: Exactly as many times as there are elements in the list (n times).
As the list gets bigger, the number of steps grows in a straight line with the number of items.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 additions |
| 100 | About 100 additions |
| 1000 | About 1000 additions |
Pattern observation: Doubling the list size roughly doubles the work done.
Time Complexity: O(n)
This means the time to finish grows directly in proportion to the number of items in the list.
[X] Wrong: "Calling len() inside the loop makes the code slower by a lot."
[OK] Correct: In Python, len() runs in constant time, so calling it once or many times does not change the overall time much compared to looping through the list.
Understanding how length and iteration affect time helps you explain how your code scales, a key skill in many programming tasks.
"What if we replaced the for loop with a list comprehension that sums elements? How would the time complexity change?"
Practice
len() function do when used on a list in Python?Solution
Step 1: Understand the purpose of
Thelen()len()function counts how many items are inside a collection like a list.Step 2: Apply to a list
When used on a list, it returns the total number of elements present in that list.Final Answer:
It returns the number of items in the list. -> Option AQuick Check:
len(list) = number of items [OK]
- Thinking len() returns the last item
- Confusing len() with sum()
- Assuming len() removes items
fruits?Solution
Step 1: Identify correct for-loop syntax in Python
Python usesfor variable in collection:to loop through items.Step 2: Match variable and collection names
The variable should be singular (fruit) and collection plural (fruits) for clarity and correctness.Final Answer:
for fruit in fruits: -> Option AQuick Check:
for item in list: is correct syntax [OK]
- Swapping variable and collection names
- Using 'foreach' which is not Python syntax
- Writing 'loop' instead of 'for'
items = ['a', 'b', 'c']
count = 0
for item in items:
count += 1
print(count)Solution
Step 1: Understand the loop iteration
The loop goes through each item in the listitems, which has 3 elements.Step 2: Track the count variable
Each time the loop runs,countincreases by 1. After 3 iterations, count becomes 3.Final Answer:
3 -> Option BQuick Check:
Loop runs 3 times, count = 3 [OK]
- Thinking count stays 0
- Confusing count with list itself
- Expecting a list output instead of a number
numbers = [1, 2, 3]
for i in numbers
print(i)Solution
Step 1: Check for syntax errors in the for loop
Python requires a colon ':' at the end of the for loop line to start the block.Step 2: Identify the missing colon
The code linefor i in numbersis missing the colon, causing a syntax error.Final Answer:
Missing colon ':' after the for loop statement. -> Option DQuick Check:
for loop line must end with ':' [OK]
- Forgetting the colon ':'
- Changing variable names unnecessarily
- Thinking print() can't be inside loops
data = [3, 0, 5, '', None, 7], which code correctly counts only the items that are considered 'truthy' in Python?Solution
Step 1: Understand 'truthy' values in Python
Truthy values are those that evaluate to True in conditions; 0, '', and None are falsy.Step 2: Analyze each option
count = len(data) counts all items, ignoring truthiness. count = sum(1 for x in data if x) sums 1 for each truthy item, correctly counting them. count = sum(data) sums values, not counts. count = len([x for x in data if x == True]) checks for exact True, missing other truthy values.Final Answer:
count = sum(1 for x in data if x) -> Option CQuick Check:
Sum 1 for truthy items counts them correctly [OK]
- Using len() counts all items, not just truthy
- Summing values instead of counting
- Checking equality to True instead of truthiness
