python内置函数——enumerate()、zip()
程序员文章站
2022-07-14 16:15:25
...
目录
enumerate()
虽然文章标题说是python内置函数,但enumerate实际上是python定义的类。
- 调用形式
enumerate(iterable, start=0)
enumerate()函数用于将一个可遍历/可迭代的数据对象iterable(如列表、元组或字符串等)组合为一个索引序列,同时列出数据和数据下标(参数start表示得到的索引值从start开始),该函数返回的是一个enumerate对象。
- 应用
示例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定义的类。
- 调用形式
zip(iter1, iter2=None, *some)
zip()将多个可迭代对象作为参数,依次将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
- 应用
names = ['张三', '李四', '王五']
sexes = ['男', '女', '男']
ages = ['20', '18', '23']
for name, sex, age in zip(names, sexes, ages):
print('{}:{},{}'.format(name, sex, age))
输出结果:
张三:男,20
李四:女,18
王五:男,23
上一篇: c++ 均值滤波和高斯滤波