python如何获取列表中每个元素的下标位置


Posted in Python onJuly 01, 2019

Git是编程中的基本技能之一,互联网公司几乎都在使用Git进行协作编程,昨天还有位禅友在微信上专门告诉我说星期五面试的时候刚好被问到 Git,幸好在这几天学了一下。Git并不难,但会Git至少可以说明一个人的学习能力或者说对技术的嗅觉能跟上主流,如果面试问你GitHub是什么都不知道,面试官就会对你打一个大的问号。

简单点评这一道题。

在使用 for 循环迭代一个列表时,有时我们需要获取列表中每个元素所在的下标位置是多少,例如 numbers = [10, 29, 30, 41],要求输出 (0, 10),(1, 29),(2, 30),(3, 41)

这道题的实现方式主要有两种方式,第一种方式是通过获取列表长度来迭代列表下标

for i in range(len(numbers)):
print('({0}, {1})'.format(i, numbers[i]))

第二种方法是直接使用enumerate函数:

numbers = [10, 29, 30, 41]
for index, value in enumerate(numbers):
print(index, value)

后者才是更地道的写法,在Python之禅中有一条格言是:There should be on,and preferably only one,obvious way to do it. 就是说我们写代码的时候应该选择一种而且最好是唯一一种显而易见的方式来实现。

内置函数 enumerate 还可以接收一个默认参数 start ,用于指定 index 从哪个数开始,默认是0,不知道有多少禅友知道这个用法,如果你不知道,那么建议你遇到新知识就更加详细地了解一下官方文档,而不仅仅只是浅尝辄止 ,学会查文档也是一个很重要的学习方法。文档

大家提交的代码大部分都回答对了,但也有些问题代码,比如命名很随意:

numbers = [10, 29, 30, 41]
for i, j in enumerate(numbers):
print(i, j)

用 i 和 j 这种没有任何意义的名字显得很业余,有人说这只是练习,但如果练习都是这样的态度,很难说工作时你能取一个合理的名字。

还有禅友用list工厂函数返回一个新的列表,这种写法有点画蛇添足,而且在迭代超大的列表时会占用更多的内存,因为你又创建了一个新的列表。

numbers = [10,29,30,41]
for i in list(enumerate(numbers)):
print(i,end=' ')

胜者属于坚持到最后的人

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python定时执行之Timer用法示例
May 27 Python
Python中方法链的使用方法
Feb 23 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
python生成excel的实例代码
Nov 08 Python
python实现自动化上线脚本的示例
Jul 01 Python
python解释器spython使用及原理解析
Aug 24 Python
python:动态路由的Flask程序代码
Nov 22 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
python热力图实现简单方法
Jan 29 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 Python
Django自定义用户登录认证示例代码
Jun 30 #Python
Python中栈、队列与优先级队列的实现方法
Jun 30 #Python
Python中请不要再用re.compile了
Jun 30 #Python
用python求一个数组的和与平均值的实现方法
Jun 29 #Python
Python:Numpy 求平均向量的实例
Jun 29 #Python
python 计算数据偏差和峰度的方法
Jun 29 #Python
Python求均值,方差,标准差的实例
Jun 29 #Python
You might like
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
js function使用心得
2010/05/10 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python数据结构之单链表详解
2017/09/12 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python感知机实现代码
2019/01/18 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
数控技校生自我鉴定
2014/03/02 职场文书
宇宙与人观后感
2015/06/05 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
高中数学教学反思范文
2016/02/18 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers