Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,844 questions

55,671 answers

573 users

How to traverse a list from both sides at the same time in Python

1 Answer

0 votes
"""
Demonstration of traversing a Python list from both ends
at the same time in idiomatic Python.

We use the classic "two‑index" technique:
    - left  starts at index 0
    - right starts at index len(lst) - 1
Both move toward the center.

This approach is efficient (O(n)), simple, and widely used in
algorithms such as palindrome checks, partitioning, and pair searching.
"""

# ------------------------------------------------------------
# Function: traverse_from_both_sides
# Purpose:  Traverse a list from both ends simultaneously.
# ------------------------------------------------------------
def traverse_from_both_sides(lst):
    left = 0
    right = len(lst) - 1

    # Move inward until the indices cross
    while left <= right:
        print(f"Left: {lst[left]}, Right: {lst[right]}")
        left += 1
        right -= 1


# ------------------------------------------------------------
# Main program
# ------------------------------------------------------------
if __name__ == "__main__":
    lst = [10, 20, 30, 40, 50, 60, 70, 80, 90]

    print("Traversing from both sides:")
    traverse_from_both_sides(lst)



"""
run:

Traversing from both sides:
Left: 10, Right: 90
Left: 20, Right: 80
Left: 30, Right: 70
Left: 40, Right: 60
Left: 50, Right: 50

"""

 



answered Jul 31 by avibootz
...