当我们需要对一个序列进行循环迭代时,可以使用Python内置函数enumerate()和zip()来简化代码的书写。
enumerate()
enumerate()函数接收一个序列作为参数,并返回一个枚举对象,其中每个元素都由该元素的索引和值组成。
下面是使用enumerate()函数的一些示例:
fruits = ['apple', 'banana', 'pear', 'orange']
for i, fruit in enumerate(fruits):
print(i, fruit)
输出结果:
0 apple
1 banana
2 pear
3 orange
在上述代码中,我们首先定义了一个列表fruits,然后使用enumerate()函数获取该列表的枚举对象。在for循环中,我们使用i和fruit这两个变量分别存储每个元素的索引和值,并将它们输出。
zip()
zip()函数可以将多个序列压缩成一个序列。 其中,每个元素都由输入序列中的元素组成,这些元素可以通过元组或列表等不同的数据类型来存储。
上面的输出结果由下面的代码片段产生:
names = ['Alice', 'Bob', 'Jack']
ages = [26, 24, 27]
for name, age in zip(names, ages):
print(name, age)
输出结果:
Alice 26
Bob 24
Jack 27
在上述代码中,我们首先定义了两个列表names和ages,然后使用zip()函数将它们压缩成一个序列。 在for循环中,我们使用name和age这两个变量分别存储压缩后序列中的元素,并输出它们。
另一个示例:
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
for letter, number in zip(letters, numbers):
print(letter, number)
输出结果:
a 1
b 2
c 3
在这个示例中,两个列表的元素数量相等,zip()函数按照它们在输入序列中的顺序将它们压缩在一起。
总结:
- enumerate()函数返回一个枚举对象,其中每个元素都由该元素的索引和值组成。
- zip()函数将多个序列压缩成一个序列,并返回一个由元组或列表等不同数据类型的元素组成的数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中的 enumerate和zip详情 - Python技术站