📖 Scenario: You have a list of daily temperatures recorded in a week. You want to find the first and last day when a specific temperature was recorded.
🎯 Goal: Build a program that finds the first and last position of a given temperature in the list.
📋 What You'll Learn
Create a list called temperatures with exact values
Create a variable called target_temp with the temperature to find
Use a for loop to find the first occurrence index of target_temp
Use a for loop to find the last occurrence index of target_temp
Print the first and last occurrence indices in the format: First: X, Last: Y
💡 Why This Matters
🌍 Real World
Finding the first and last occurrence of a value in a list is useful in many real-world tasks like analyzing sensor data, logs, or user activity.
💼 Career
This skill helps in data processing, debugging, and building search features in software development.
Progress0 / 4 steps
1
Create the temperature list
Create a list called temperatures with these exact values: [23, 25, 23, 22, 25, 23, 24]
DSA Python
Hint
Use square brackets [] to create the list and separate values with commas.
2
Set the target temperature
Create a variable called target_temp and set it to 23
DSA Python
Hint
Use the assignment operator = to set the value.
3
Find first and last occurrence
Use two for loops with variables i to find the first and last index of target_temp in temperatures. Store the first index in first_index and the last index in last_index. Initialize first_index to -1 and last_index to -1 before the loops.
DSA Python
Hint
Use range(len(temperatures)) to loop forward and range(len(temperatures) - 1, -1, -1) to loop backward.
4
Print the results
Print the first and last occurrence indices in this exact format: First: X, Last: Y where X is first_index and Y is last_index
DSA Python
Hint
Use an f-string to format the output exactly as shown.
Practice
(1/5)
1. What does the term first occurrence of an element in a list mean?
easy
A. The total count of the element in the list
B. The last index where the element appears in the list
C. The index where the element appears first in the list
D. The element with the smallest value in the list
Solution
Step 1: Understand the meaning of first occurrence
The first occurrence means the earliest position (index) where the element appears in the list when reading from left to right.
Step 2: Compare with other options
Other options describe last occurrence, count, or smallest value, which are different concepts.
Final Answer:
The index where the element appears first in the list -> Option C
Quick Check:
First occurrence = first index [OK]
Hint: First occurrence means earliest index found [OK]
Common Mistakes:
Confusing first occurrence with last occurrence
Thinking it means the count of the element
Mixing occurrence with element value
2. Which of the following Python code snippets correctly finds the first occurrence index of element 5 in list arr?
easy
A. arr.find(5)
B. arr.index(5)
C. arr.search(5)
D. arr.locate(5)
Solution
Step 1: Recall Python list methods
Python lists have the method index() to find the first occurrence index of an element.
Step 2: Check other options
Methods find(), search(), and locate() do not exist for Python lists.
Final Answer:
arr.index(5) -> Option B
Quick Check:
Use list.index(element) to find first occurrence [OK]
Hint: Use list.index() to get first occurrence index [OK]
Common Mistakes:
Using non-existent methods like find or search on lists
Confusing string methods with list methods
Trying to use index without handling exceptions
3. What will be the output of the following code?
arr = [2, 4, 5, 4, 5, 6]
first = arr.index(4)
last = len(arr) - 1 - arr[::-1].index(4)
print([first, last])
medium
A. [1, 3]
B. [3, 1]
C. [1, 4]
D. [4, 1]
Solution
Step 1: Find first occurrence of 4
Using arr.index(4) returns 1 because 4 first appears at index 1.
Step 2: Find last occurrence of 4
arr[::-1] reverses the list to [6, 5, 4, 5, 4, 2]. The first index of 4 in reversed list is 2. So last occurrence index = len(arr) - 1 - 2 = 6 - 1 - 2 = 3.
Final Answer:
[1, 3] -> Option A
Quick Check:
First = 1, Last = 3 [OK]
Hint: Reverse list and use index for last occurrence [OK]
Common Mistakes:
Mixing up reversed index with original index
Using last = arr.index(4) instead of reversed search
Confusing first and last occurrence indexes
4. The following code is intended to find the first and last occurrence of element 7 in list nums. What is the error?
nums = [1, 7, 3, 7, 5]
first = nums.index(7)
last = nums.index(7, -1)
print(first, last)
medium
A. Using negative start index in index() causes ValueError
B. index() cannot find element 7 in the list
C. No error; code works correctly
D. The second index() call should use a positive start index
Solution
Step 1: Understand index() with start parameter
The index() method can take a start index. Using -1 as start means start searching from the last element only.
Step 2: Identify the error in last occurrence search
Using nums.index(7, -1) starts searching from index -1 (last element), so it only checks last element which is 5, not 7, causing ValueError.
Final Answer:
The second index() call should use a positive start index -> Option D
Quick Check:
index(start=-1) limits search to last element [OK]
Hint: Use positive start index in index() for last occurrence [OK]
Common Mistakes:
Using negative start index in list.index()
Expecting index() to find last occurrence without correct start
Not handling ValueError when element not found
5. Given a sorted list data = [1, 2, 2, 2, 3, 4, 5], which approach is best to find the first and last occurrence of 2 efficiently?
hard
A. Use binary search to find first and last occurrence
B. Use linear search from start and end to find occurrences
C. Use list.index() and reversed list index() methods
D. Use count() method to find number of occurrences
Solution
Step 1: Understand the list is sorted
Since the list is sorted, binary search can be used to find positions efficiently in O(log n) time.
Step 2: Compare approaches
Linear search (Use linear search from start and end to find occurrences) is slower (O(n)). Using list.index() and reversed index() (Use list.index() and reversed list index() methods) is also linear. count() (Use count() method to find number of occurrences) gives count but not positions.
Step 3: Best approach
Binary search can be adapted to find first and last occurrence indexes quickly.
Final Answer:
Use binary search to find first and last occurrence -> Option A
Quick Check:
Sorted list + binary search = efficient occurrence search [OK]
Hint: Use binary search on sorted list for fast occurrence indexes [OK]
Common Mistakes:
Using linear search on sorted lists
Using count() instead of finding indexes
Not leveraging sorted property for efficiency
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.