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 10 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Python处理文本换行符实例代码
Feb 03 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
python调试神器PySnooper的使用
Jul 03 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 Python
Django使用channels + websocket打造在线聊天室
May 20 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获取当前完整URL地址的函数
2014/12/21 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
深入研究React中setState源码
2017/11/17 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
css sprite简单实例
2016/05/23 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
采购助理岗位职责
2014/02/16 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
mysql查找连续出现n次以上的数字
2022/05/11 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL