很多时候,在处理迭代器时,我们还需要保存迭代计数。Python 通过提供一个名为enumerate()
的内置函数简化这一任务,允许在序列上迭代时跟踪索引。以下是一种不成熟的方法,然后是推荐方法:
words = ['Hannibal', 'Hanny', 'Steeve']
# 不成熟的方法
index = 0
for word in words:
print(index, word)
index += 1
# 推荐方法
for index, word in enumerate(words):
print(index, word)
另一个示例是使用内置的zip()
函数,该函数创建一个迭代器,对来自两个或多个迭代器的元素进行配对。你可以使用它来快速有效地解决常见的编程问题,比如创建字典。
subjects = ['math', 'chemistry', 'biology', 'pyhsics']
grades = ['100', '83', '90', '92']
grades_dict = dict(zip(subjects, grades))
print(grades_dict)
可以使用zip()
函数将列表组合成一个元组列表。这不仅仅限于使用两个列表。也适合3个或更多列表的情况。
a = [ a , b , c ]
b = [1,2,3]
[(k,v) for k,v in zip(a,b)]
#=> [( a , 1), ( b , 2), ( c , 3)]