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正则分组的应用
Nov 10 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
Python 中的 else详解
Apr 23 Python
Python3中的bytes和str类型详解
May 02 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
Python如何根据时间序列数据作图
May 12 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
Python如何操作docker redis过程解析
Aug 10 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python3中确保枚举值代码分析
Dec 02 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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实现图片缩放功能类
2013/12/18 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
js实现日期级联效果
2014/01/23 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
详解Python用户登录接口的方法
2019/04/17 Python
pandas分组聚合详解
2020/04/10 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Python 必须了解的5种高级特征
2020/09/10 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
教师远程培训感言
2014/03/06 职场文书
房产委托公证书样本
2014/04/04 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
新年晚会开场白
2015/05/29 职场文书
《雷雨》教学反思
2016/02/20 职场文书