欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python内置函数——enumerate()、zip()

程序员文章站 2022-07-14 16:15:25
...

enumerate()

虽然文章标题说是python内置函数,但enumerate实际上是python定义的类。

  1. 调用形式
enumerate(iterable, start=0)

enumerate()函数用于将一个可遍历/可迭代的数据对象iterable(如列表、元组或字符串等)组合为一个索引序列,同时列出数据和数据下标(参数start表示得到的索引值从start开始),该函数返回的是一个enumerate对象。

  1. 应用

示例1:一般用在 for 循环当中,可同时得到数据对象的值及对应的索引值。

iter_able = ['one', 'two', 'three', 'four', 'five']
for index, item in enumerate(iter_able):
    print('index = %d, item = %s' % (index, item))

输出结果:

index = 0, item = one
index = 1, item = two
index = 2, item = three
index = 3, item = four
index = 4, item = five

设置参数start从2开始:

iter_able = ['one', 'two', 'three', 'four', 'five']
for index, item in enumerate(iter_able, start=2):
    print('index = %d, item = %s' % (index, item))

输出结果:

index = 2, item = one
index = 3, item = two
index = 4, item = three
index = 5, item = four
index = 6, item = five

示例2:如果要统计文件的行数,可以这样写:

count = len(open(filepath, 'r').readlines())

这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')): 
   count += 1

zip()

和enumerate()一样,zip()实际上也是python定义的类。

  1. 调用形式
zip(iter1, iter2=None, *some)

zip()将多个可迭代对象作为参数,依次将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。

  1. 应用
names = ['张三', '李四', '王五']
sexes = ['男', '女', '男']
ages = ['20', '18', '23']
for name, sex, age in zip(names, sexes, ages):
    print('{}:{},{}'.format(name, sex, age))

输出结果:

张三:,20
李四:,18
王五:,23