《Python语言程序设计》 —2.5.3 索引

举报
华章计算机 发表于 2019/11/18 20:15:21 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第2章,第2.5.3节,作者是王恺 王志 李涛 朱洪文。

2.5.3 索引

对于2.5.1节的代码清单2-17,如果希望不仅获取每一个元素的值,而且能获取每一个元素的索引,则可以改成代码清单2-22中所示方式,即通过len函数获取可迭代对象中的元素数量,再通过range函数生成由所有元素索引组成的可迭代对象。


代码清单2-22 同时访问索引和元素值

1    ls=['Python','C++','Java']

2    for k in range(len(ls)): #k为每一个元素的索引

3        print(k,ls[k]) #通过ls[k]可访问索引为k的元素

执行完毕后,输出结果如下:

0 Python

1 C++

2 Java

即先输出每个元素的索引,再输出该元素的值。

除了上面的实现方式外,还可以通过一种更简洁的方式利用enumerate函数来访问每个元素的索引,如下面的代码所示。

1    ls=['Python','C++','Java']

2    for k,v in enumerate(ls): #k保存当前元素索引,v保存当前元素值

3        print(k,v)

执行完毕后,输出结果与代码清单2-22完全相同。

enumerate函数的功能是将一个可迭代对象组成一个索引序列(enumerate)对象,利用这个索引序列对象可以同时获得每个元素的索引和值。enumerate函数还可以指定索引的起始值,如代码清单2-23所示。


代码清单2-23 enumerate函数指定索引起始值

1    ls=['Python','C++','Java']

2    for k,v in enumerate(ls,1): #索引从1开始(默认为0)

3        print(k,v)


执行完毕后,输出结果如下:

1 Python

2 C++

3 Java

思考 在代码清单2-23中,将enumerate(ls,1)改为enumerate(ls,3),则程序执行完毕后会输出什么结果呢?


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。