Master Python’s enumerate and zip: Simple Tricks for Indexing and Pairing
This tutorial explains how Python's built‑in enumerate and zip functions simplify list iteration, allowing you to retrieve both element indices and values or combine multiple sequences, with clear code examples and visual illustrations for everyday programming scenarios.
Introduction
Python provides several handy built‑in functions. This article focuses on two of them— enumerate and zip —and demonstrates practical scenarios where they reduce boilerplate code.
Using enumerate
When you need both the index and the value while iterating a list, enumerate is ideal.
<code>number_list = [1, 2, 3, 4, 5]</code>Traditional approaches:
<code>for num in number_list:
print(num)</code> <code>for i in range(len(number_list)):
print(number_list[i])</code>With enumerate you can obtain the index and element together:
<code>for i, num in enumerate(number_list):
print(f'当前索引位置:{i}')
print(f'当前元素:{num}')</code>Using zip
zip pairs elements from multiple sequences into tuples.
<code>man_list = ['黄晓明', '刘恺威', '贾乃亮']
woman_list = ['杨颖', '杨幂', '李小璐']
couple_zip_list = list(zip(man_list, woman_list))
print(couple_zip_list)</code>Note that zip stops at the shortest input sequence.
You can also unzip:
<code>man_tuple, woman_tuple = zip(*couple_zip_list)</code>Combining enumerate and zip
By nesting enumerate around zip , you can iterate over paired items while also tracking their position:
<code>for i, (man, woman) in enumerate(zip(man_list, woman_list)):
print(f'当前第{i+1}对夫妻: 男方:{man}, 女方:{woman}')</code>Summary
enumerate is useful whenever you need both the index and the element of a sequence; remember the index comes first and is an integer.
zip shines when you need to traverse multiple sequences in parallel, automatically pairing corresponding items.
Combining the two functions yields concise, readable code that handles complex pairing and indexing tasks with minimal effort.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.