Python学习笔记——enumerate

想入门金融,对量化这块比较感兴趣。因此选了Python学习。权当记录自己的一些学习笔记。

enumerate函数

enumerate函数是用来遍历一个迭代容器的元素,同时通过一个计数器变量记录当前元素所对应的索引值的函数。写出来的语句确实很有Pythonic的感觉,而且确实比一般通过range(list())来的简洁。有人说range(list())这种方式是老程序员沿用C,Java来的习惯,而且我最开始学习Python时,也是使用的range(list())来去元素的。

简单的:

fruits = ['apple', 'banana', 'peach', 'rice']
print(enumerate(fruits)

返回一个地址

<enumerate object at 0x03169F30>

fruits = ['apple', 'banana', 'peach', 'rice']
print(list(enumerate(fruits))

返回一个列表,是索引值与对应元素形成的元组为元素的列表。

[(0, 'apple'), (1, 'banana'), (2, 'peach'), (3, 'rice')]

进行遍历的话,可以这样

fruits = ['apple', 'banana', 'peach', 'rice']
for i in enumerate(fruits):
   print(i)

返回遍历结果

(0, 'apple')
(1, 'banana')
(2, 'peach')

(3, 'rice')

如果想将索引值和对应的元素分别返回的话

fruits = ['apple', 'banana', 'peach', 'rice']
for index, value in enumerate(fruits):
   print(index, value)
通过两个变量定义索引值和元素,分别输出。

0 apple
1 banana
2 peach
3 rice

注意,只要定义两个变量即可,不需要是index和value这两个名称,与字典中key和value的定义不一样。

fruits = ['apple', 'banana', 'peach', 'rice']
for aa, bb in enumerate(fruits):
   print(aa, bb)

返回也是上面的结果。同时注意,定义的变量对应的是索引值还是对应的元素,只与变量的位置有关;第一个变量对应索引值,第二个变量对应具体的元素。

fruits = ['apple', 'banana', 'peach', 'rice']

for value, index in enumerate(fruits, 2):
    print(index, value)

返回结果

apple 0
banana 1
peach 2
rice 3

修改起始的索引值,添加希望开始的数字

fruits = ['apple', 'banana', 'peach', 'rice']

for index, value in enumerate(fruits, 2):
    print(index, value)

返回结果:

2 apple
3 banana
4 peach
5 rice

总结:

1、enumerate函数是Python的内置函数,应该充分利用它通过循环迭代自动生成的索引变量。

2、索引值默认从0开始,但是可以修改为使用者愿意的任意整数开始。

3、可以帮助我们编写更加Pythonic和地道的循环结构,并且可以避免使用笨重且容易出错的手动生成索引。

4、为了充分利用enumerate的特性,应该好好研究Python的迭代器和数据结构解包功能。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值