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自动化测试实例解析
Sep 28 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
Django web框架使用url path name详解
Apr 29 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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数据库操作面向对象的优点
2006/10/09 PHP
基于jQuery的js分页代码
2010/06/10 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
javascript打印输出json实例
2013/11/11 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
pandas表连接 索引上的合并方法
2018/06/08 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python switch 实现多分支选择功能
2020/12/21 Python
Django如何重置migration的几种情景
2021/02/24 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
公共事业管理本科生求职信
2013/10/07 职场文书
家长会主持词开场白
2014/03/18 职场文书
教师自我鉴定范文
2014/03/20 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
2014年班干部工作总结
2014/11/25 职场文书
经典导游欢迎词
2015/01/26 职场文书
怒海潜将观后感
2015/06/11 职场文书
房产遗嘱范本
2015/08/06 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Python序列化与反序列化相关知识总结
2021/06/08 Python
Vue+Flask实现图片传输功能
2022/04/01 Vue.js