Python5 min read

Python Enumerate and Zip

Loop efficiently using enumerate and zip functions.

Michael Brown
December 18, 2025
0.0k0

Better looping techniques.

Enumerate

```python fruits = ["apple", "banana", "orange"]

Without enumerate for i in range(len(fruits)): print(f"{i}: {fruits[i]}")

With enumerate (better) for index, fruit in enumerate(fruits): print(f"{index}: {fruit}") # 0: apple # 1: banana # 2: orange

Start from custom index for index, fruit in enumerate(fruits, start=1): print(f"{index}: {fruit}") ```

Zip

```python names = ["Tom", "Sarah", "Mike"] ages = [25, 28, 30] cities = ["Austin", "Miami", "Denver"]

Combine lists for name, age, city in zip(names, ages, cities): print(f"{name} is {age} from {city}") # Tom is 25 from Austin # Sarah is 28 from Miami # Mike is 30 from Denver ```

Zip to Dictionary

```python keys = ["name", "age", "city"] values = ["Tom", 25, "Austin"]

person = dict(zip(keys, values)) print(person) # {'name': 'Tom', 'age': 25, 'city': 'Austin'} ```

Unzip

```python pairs = [(1, "a"), (2, "b"), (3, "c")]

numbers, letters = zip(*pairs) print(numbers) # (1, 2, 3) print(letters) # ('a', 'b', 'c') ```

Practical Example

```python students = ["Tom", "Sarah", "Mike"] scores = [85, 92, 78]

Create leaderboard leaderboard = list(zip(students, scores)) leaderboard.sort(key=lambda x: x[1], reverse=True)

for rank, (student, score) in enumerate(leaderboard, start=1): print(f"{rank}. {student}: {score}") # 1. Sarah: 92 # 2. Tom: 85 # 3. Mike: 78 ```

Remember

- enumerate() for index + value - zip() to combine lists - zip stops at shortest list

#Python#Intermediate#Loops