🔄 Using enumerate() and zip()

Python's enumerate() and zip() functions are powerful tools for iteration, allowing you to work with indices and combine multiple sequences efficiently.

# Basic enumerate and zip usage
fruits = ['apple', 'banana', 'cherry']

# Using enumerate
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# Using zip
prices = [1.0, 2.0, 3.0]
for fruit, price in zip(fruits, prices):
    print(f"{fruit}: ${price}")

🎯 The enumerate() Function

enumerate() adds a counter to an iterable, making it easy to track positions while iterating.

Basic Examples

# Different ways to use enumerate
fruits = ['apple', 'banana', 'cherry']

# Basic enumeration
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# Custom start value
for index, fruit in enumerate(fruits, start=1):
    print(f"Item {index}: {fruit}")

# Creating numbered list
numbered_fruits = [f"{i+1}. {fruit}" for i, fruit in enumerate(fruits)]
print(f"Numbered list: {numbered_fruits}")

# Debugging with enumerate
for i, fruit in enumerate(fruits):
    if len(fruit) < 5:
        print(f"Warning: Short fruit name at index {i}")

🔍 The zip() Function

zip() combines multiple iterables into a single iterator of tuples, making it perfect for parallel iteration.

# Different ways to use zip
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
cities = ['New York', 'London', 'Paris']

# Basic zipping
for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

# Zipping multiple lists
for name, age, city in zip(names, ages, cities):
    print(f"{name} is {age} and lives in {city}")

# Creating dictionaries
person_dict = dict(zip(names, ages))
print(f"Dictionary: {person_dict}")

# Unzipping
zipped = list(zip(names, ages))
unzipped_names, unzipped_ages = zip(*zipped)
print(f"Unzipped names: {unzipped_names}")
print(f"Unzipped ages: {unzipped_ages}")

🎯 Key Takeaways

Was this helpful?

😔Poor
🙁Fair
😊Good
😄Great
🤩Excellent