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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
python获取外网ip地址的方法总结
Jul 02 Python
python代码实现ID3决策树算法
Dec 20 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Python爬虫开发与项目实战
Dec 16 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
Pandas 稀疏数据结构的实现
Jul 25 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
mysql5详细安装教程
2007/01/15 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
中科前程Java笔试题
2016/11/20 面试题
运动会广播稿30字
2014/01/21 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
小学作文评语大全
2014/04/21 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
婚礼父母答谢词
2015/01/04 职场文书
闪闪红星观后感
2015/06/08 职场文书
学校教代会开幕词
2016/03/04 职场文书
创业计划书之美甲店
2019/09/20 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
python实现简单区块链结构
2021/04/25 Python
Sql Server之数据类型详解
2022/02/28 SQL Server