Bird
Raised Fist0
Pythonprogramming~15 mins

enumerate() function in Python - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Using the enumerate() function in Python
๐Ÿ“– Scenario: You are helping a teacher organize a list of student names with their position numbers for attendance.
๐ŸŽฏ Goal: Build a program that uses the enumerate() function to pair each student name with their position number starting from 1.
๐Ÿ“‹ What You'll Learn
Create a list of student names
Create a variable to set the starting index for enumeration
Use the enumerate() function with the starting index
Print each student's position number and name
๐Ÿ’ก Why This Matters
๐ŸŒ Real World
Teachers, event organizers, and programmers often need to number items in a list clearly and simply.
๐Ÿ’ผ Career
Knowing how to use <code>enumerate()</code> helps in data processing, reporting, and user interface development where item positions matter.
Progress0 / 4 steps
1
Create the list of student names
Create a list called students with these exact names in order: 'Alice', 'Bob', 'Charlie', 'Diana', 'Ethan'.
Python
Hint

Use square brackets [] to create a list and separate names with commas.

2
Set the starting index for enumeration
Create a variable called start_index and set it to 1 to start counting from 1.
Python
Hint

Just assign the number 1 to the variable start_index.

3
Use enumerate() to pair positions with names
Use a for loop with variables position and name to iterate over enumerate(students, start=start_index).
Python
Hint

Use enumerate() with the start parameter to begin counting from 1.

4
Print the position and student name
Inside the for loop, write print(f"{position}: {name}") to display each student's position number and name.
Python
Hint

Use an f-string to format the output as "position: name".

Practice

(1/5)
1. What does the enumerate() function do in Python?
easy
A. It counts how many items are in a list.
B. It sorts the items in a list alphabetically.
C. It reverses the order of items in a list.
D. It returns both the index and the value of items in a list during a loop.

Solution

  1. Step 1: Understand the purpose of enumerate()

    The enumerate() function adds a counter to an iterable and returns it as an enumerate object.
  2. Step 2: Identify what is returned during looping

    When looping, it gives both the index (position) and the value of each item.
  3. Final Answer:

    It returns both the index and the value of items in a list during a loop. -> Option D
  4. Quick Check:

    enumerate() = index + value [OK]
Hint: Remember: enumerate() pairs index with value [OK]
Common Mistakes:
  • Thinking enumerate() sorts the list
  • Assuming it only counts items
  • Believing it reverses the list
2. Which of the following is the correct syntax to use enumerate() in a for loop?
easy
A. for index in enumerate(list):
B. for value, index in enumerate(list):
C. for index, value in enumerate(list):
D. for value in enumerate(list):

Solution

  1. Step 1: Recall the unpacking order of enumerate()

    enumerate() returns pairs of (index, value), so the loop variables must match this order.
  2. Step 2: Match the correct variable order in the for loop

    The correct syntax is for index, value in enumerate(list): to unpack both index and value properly.
  3. Final Answer:

    for index, value in enumerate(list): -> Option C
  4. Quick Check:

    Index comes first, then value [OK]
Hint: Index always comes before value in enumerate() [OK]
Common Mistakes:
  • Swapping index and value order
  • Using only one variable to unpack both
  • Forgetting to unpack both values
3. What is the output of this code?
fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits, start=1):
    print(i, fruit)
medium
A. 1 apple 2 banana 3 cherry
B. 0 apple 1 banana 2 cherry
C. apple 0 banana 1 cherry 2
D. apple 1 banana 2 cherry 3

Solution

  1. Step 1: Understand the start parameter in enumerate()

    The start=1 means counting begins at 1 instead of the default 0.
  2. Step 2: Trace the loop output

    Loop prints index and fruit: 1 apple, 2 banana, 3 cherry.
  3. Final Answer:

    1 apple 2 banana 3 cherry -> Option A
  4. Quick Check:

    start=1 shifts index to 1 [OK]
Hint: Check start value to know index numbering [OK]
Common Mistakes:
  • Assuming index starts at 0 despite start=1
  • Mixing up index and value order in print
  • Ignoring the start parameter
4. Find the error in this code snippet:
items = ['pen', 'pencil', 'eraser']
for value, index in enumerate(items):
    print(index, value)
medium
A. There is no error; the code runs fine.
B. The variables in the for loop are reversed; index should come first.
C. The print statement syntax is incorrect.
D. enumerate() cannot be used with lists.

Solution

  1. Step 1: Check the order of variables unpacked from enumerate()

    enumerate() returns (index, value), so the first variable must be index.
  2. Step 2: Identify the mistake in variable order

    The code uses value, index which is reversed and causes incorrect unpacking.
  3. Final Answer:

    The variables in the for loop are reversed; index should come first. -> Option B
  4. Quick Check:

    Index always first in enumerate() unpacking [OK]
Hint: Index comes before value in enumerate() unpacking [OK]
Common Mistakes:
  • Swapping index and value variables
  • Thinking enumerate() can't be used with lists
  • Misreading the error as print syntax
5. You have a list of names: names = ['Anna', 'Bob', '', 'Diana']. You want to print only non-empty names with their positions starting at 1. Which code correctly does this using enumerate()?
hard
A. for i, name in enumerate(names, start=1): if name: print(i, name)
B. for i, name in enumerate(names): if name != '': print(i, name)
C. for i, name in enumerate(names, start=0): if name: print(i, name)
D. for i, name in enumerate(names, start=1): if name == '': print(i, name)

Solution

  1. Step 1: Indexing starting at 1

    Use enumerate(names, start=1) to get positions starting from 1: 1 Anna, 2 Bob, 3 (empty), 4 Diana.
  2. Step 2: Skip empty names

    Use if name: since empty string '' is falsy in Python.
  3. Final Answer:

    for i, name in enumerate(names, start=1): if name: print(i, name) -> Option A
  4. Quick Check:

    start=1 + if name skips empty [OK]
Hint: Use start=1 and if name to skip empty strings [OK]
Common Mistakes:
  • Forgetting to start counting at 1
  • Printing empty strings
  • Not adjusting index when using default start=0