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基于右递归解决八皇后问题的方法
May 25 Python
深入解析Python中的urllib2模块
Nov 13 Python
python实现k-means聚类算法
Feb 23 Python
python爬虫实例详解
Jun 19 Python
python之信息加密题目详解
Jun 26 Python
python操作excel让工作自动化
Aug 09 Python
python ubplot使用方法解析
Jan 10 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python中format函数如何使用
Jun 22 Python
Python dict的常用方法示例代码
Jun 23 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
详解Python描述符的工作原理
Jun 11 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实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP强制转化的形式整理
2020/05/22 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Python实现获取命令行输出结果的方法
2017/06/10 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python笔记之工厂模式
2019/11/20 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
python em算法的实现
2020/10/03 Python
python 元组和列表的区别
2020/12/30 Python
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
美国购物网站:Clickhere2shop
2021/01/28 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
社区党员先进事迹
2014/01/22 职场文书
执行总经理岗位职责
2014/02/03 职场文书
公证书样本
2014/04/10 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
离婚民事起诉状
2015/08/03 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS