Fundamentals 7 min read

Advanced Loop Techniques in Python: zip, range, filter, enumerate, and sorted

This article introduces several Python iteration tricks—including zip for parallel loops, C‑style range loops, filter for selective processing, enumerate for indexed iteration, and sorted for ordering data—providing concise code examples that make loops more efficient and readable.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Advanced Loop Techniques in Python: zip, range, filter, enumerate, and sorted

For many beginner Python programmers, the for loop is the first concept they encounter, but over‑reliance on simple iteration can hide more efficient techniques.

Zip: Iterate over two lists simultaneously

Python makes it easy to loop over two sequences at once using the zip() function.

<code>for first, second in zip(array1, array2):
    print(first)
    print(second)</code>

Example with an odd and an even number list:

<code>odds = [1,3,5,7,9]
evens = [2,4,6,8,10]
for oddnum, evennum in zip(odds, evens):
    print(oddnum)
    print(evennum)</code>

The output is the numbers 1 through 10 in order.

In‑range function: C‑style loop

A C‑style loop can be written with range() :

<code>for i in range(10):
    print(i)
    if i == 3:
        i.update(7)</code>

Although the snippet is not a true C‑style loop, it demonstrates how Python can emulate that pattern.

Custom C‑style iterator class

The author also provides a custom iterator class to mimic a more flexible C‑style loop (code omitted for brevity).

filter() function: Loop only needed data

filter() lets you iterate over items that satisfy a condition, avoiding extra checks inside the loop.

<code>people = [{"name": "John", "id": 1}, {"name": "Mike", "id": 4}, {"name": "Sandra", "id": 2}, {"name": "Jennifer", "id": 3}]
for person in filter(lambda i: i["id"] % 2 == 0, people):
    print(person)</code>

This prints the entries with even id values.

enumerate() function: Indexing dimensions

enumerate() adds an index to each element during iteration.

<code>l = [5, 10, 15]
for idx, value in enumerate(l):
    print(idx, value)</code>

The indices and values are combined into tuples automatically.

sorted() function: Ordering data

sorted() returns a new list sorted in ascending order; setting reverse=True sorts descending, and a key function can customize ordering.

<code>l = [15, 6, 1, 8]
for i in sorted(l):
    print(i)
# Output: 1 6 8 15
for i in sorted(l, reverse=True):
    print(i)
# Output: 15 8 6 1
l.sort(key=lambda s: s[::-1])</code>

These techniques help keep Python code concise, clear, and performant, encouraging deeper exploration of the language's powerful iteration capabilities.

PythoniterationFilterloopsenumeratesortedzip
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.