语法
zip(*iterables)
enumerate(iterable, start=0)
参数说明如下:
iterables
:一个或多个可迭代对象,如列表、元组、字符串等。iterable
:一个可迭代对象,如列表、元组、字符串等。start
(可选):下标起始位置的值,默认为 0。
返回值
zip
:返回一个迭代器,每个元素都是一个元组,由输入的可迭代对象在相同位置上的元素组成。使用时需要注意:
zip
函数会以最短的可迭代对象的长度为准进行合并,以最短合并 多的不要。enumerate
:返回一个迭代器,每个元素都是一个包含索引和对应元素的元组。
使用
比如:我们有这些变量
1 | string = "ABCDEF" # 字符串 |
zip
1 | for i in zip(string, arr, fruits, person.values()): # 使用values()获取字典的值 |
可以看到zip
把string
拆分开了,并以fruits
和person
为最短的结尾,多了的就舍弃了。
enumerate
1 | for i in enumerate(fruits, 0): # 以 0 开始下标 |
1 | for i in enumerate(fruits, 1): # 以 1 开始下标 |
结合使用 zip
和 enumerates
1 | for index, values in enumerate(zip(string, arr, fruits, person.values()), 1): |
总结
zip
函数适用于同时遍历多个序列,将它们配对成为元组,方便处理。enumerate
函数则适用于遍历序列并获得每个元素的索引值。