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脚本分享
Apr 21 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python算法应用实战之队列详解
Feb 04 Python
python 字符串和整数的转换方法
Jun 25 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
python中字符串的编码与解码详析
Dec 03 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
Python学习之异常中的finally使用详解
Mar 16 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
php限制ip地址范围的方法
2015/03/31 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
php验证码生成器
2017/05/24 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
chrome原生方法之数组
2011/11/30 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
python 正则式使用心得
2009/05/07 Python
Python实现一个简单的MySQL类
2015/01/07 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
What is view? why do we have view?
2012/06/22 面试题
高中物理教学反思
2014/02/08 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
小学生读书笔记
2015/07/01 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL