Python中enumerate()函数的使用

参考链接: enumerate(iterable, start=0)

返回一个枚举对象。
iterable 必须是一个序列,或 iterator,或其他支持迭代的对象。
enumerate() 返回的迭代器的 __next__() 方法返回一个元组,
里面包含一个计数值(从 start 开始,默认为 0)
和通过迭代 iterable 获得的值。

Python官网教程实例:

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]


# 等价于:
def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

动手实验演示:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
>>> friends = ['yzb','cjh','zh','lzq']
>>> list(enumerate(friends))
[(0, 'yzb'), (1, 'cjh'), (2, 'zh'), (3, 'lzq')]
>>> for idx,friend in enumerate(friends):
	print(idx,friend)

	
0 yzb
1 cjh
2 zh
3 lzq
>>> 
>>> list(enumerate(friends,20200910))
[(20200910, 'yzb'), (20200911, 'cjh'), (20200912, 'zh'), (20200913, 'lzq')]
>>> for idx,friend in enumerate(friends,start=20200910):
	print(idx,friend)

	
20200910 yzb
20200911 cjh
20200912 zh
20200913 lzq
>>> 
>>> 
>>> # 自定义等效的枚举函数
>>> def enumerate4cxq(sequence, start=0):
	n = start
	for elem in sequence:
		yield n, elem
		n += 1

		
>>> friends = ['尹增宝','陈金涵','赵昊','林祖泉']
>>> list(enumerate4cxq(friends))
[(0, '尹增宝'), (1, '陈金涵'), (2, '赵昊'), (3, '林祖泉')]
>>> for idx,friend in enumerate4cxq(friends):
	print(idx,friend)

	
0 尹增宝
1 陈金涵
2 赵昊
3 林祖泉
>>> 
>>> list(enumerate(friends,20200910))
[(20200910, '尹增宝'), (20200911, '陈金涵'), (20200912, '赵昊'), (20200913, '林祖泉')]
>>> for idx,friend in enumerate(friends,start=20200910):
	print(idx,friend)

	
20200910 尹增宝
20200911 陈金涵
20200912 赵昊
20200913 林祖泉
>>> 
>>> 
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值