新接触了一个函数 enumrate ,很多情况下我们想获得可迭代的容器(例如dict、list、tuple等)元素的时候,想同时获得一个序号用以他用。

代码常常写成这个样子

list_a = ["apple", "dell", "hp", "ibm"]
for idx in range(len(list_a)):
print("idx={0}, content={1}".format(idx, list_a[idx]))

如果是dict,那么会写成这样子

dict_a={"a":"apple","b":"banana","o":"orange"}
idx = 0
for it in dict_a:
idx = idx + 1
print("key[{0}]={1},idx={2}".format(it, dict_a[it], idx))

但功能有了,美观较差

这时候enumrate就该出场了。enumrate函数可以同时返回元素和索引号。上面两个例子,可以写成这个样子

list_a = ["apple", "dell", "hp", "ibm"]
for idx,val in enumerate(list_a):
print("idx={0}, content={1}".format(idx, val))

而输出为

idx=0, content=apple
idx=1, content=dell
idx=2, content=hp
idx=3, content=ibm

而dict可以写成这样子

for idx,key in enumerate(dict_a):
print("key[{0}]={1},idx={2}".format(key,dict_a[key],idx))

输出为

key[b]=banana,idx=0
key[o]=orange,idx=1
key[a]=apple,idx=2

另外学习到其他博主的用法

如果要统计文件的行数,可以这样写:

count = len(open(filepath, 'r').readlines())

这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')):
count += 1

  

python enumrate使用的更多相关文章

  1. Python高手之路【二】python基本数据类型

    一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...

  2. 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型

    运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...

  3. Python基础(二)

    本章内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和x ...

  4. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  5. python基础之数据类型(二)

    Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...

  6. Python之路,Day2 - Python基础2

    def decode(self, encoding=None, errors=None): """ 解码 """ ""& ...

  7. Python全栈考试-部分试题(精选)

    Python全栈考试(一) Python全栈考试(一) 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py ...

  8. python数据类型详解及列表字典集合推导式详解

    一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...

  9. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

随机推荐

  1. 使用jmeter 上传文件

    1.上传图片至阿里云时参数使用的parameters ,所以http的消息头中并没有添加content-type ,如果消息头中添加了Content-Type: multipart/form-data ...

  2. pixi.js + three.js

    three.js    最好的webgl 3d渲染库之一, pixi.js    最好的webgl 2d渲染库之一,也许可以把之一去掉 两个库都很精简,如果把两个库结合起来,一定很爽很爽,你说是吧! ...

  3. Mysql 间隙锁原理,以及Repeatable Read隔离级别下可以防止幻读原理(百度)

    Mysql知识实在太丰富了,前几天百度的面试官问我MySql在Repeatable Read下面是否会有幻读出现,我说按照事务的特性当然会有, 但是面试官却说 Mysql 在Repeatable Re ...

  4. MacOS 如何剪切文件

    MacOS 如何剪切文件 MacOS 剪切文件 command + C 复制 command + V 粘贴 删除 & 粘贴 在 Windows中 Ctrl + X 是剪切,MacOS中没有剪切 ...

  5. DataSet和实体类的相互转换

    最近做WInfrom项目,对表格和控件的数据绑定非常喜欢用实体类对象来解决,但是绑定以后 又怎么从控件中拿到实体类或者转换为datatable 或者dataset呢 经过在网上的搜索以及自己的改进 完 ...

  6. 51nod 1206 && hdu 1828 Picture (扫描线+离散化+线段树 矩阵周长并)

    1206 Picture  题目来源: IOI 1998 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  关注 给出平面上的N个矩形(矩形的边平行于X轴 ...

  7. linux、windows搭建nginx出现问题集锦

    1.启动提示端口被占用(linux) 启动ninx出现nginx: [emerg] bind() to0.0.0.0:80 failed (98: Address already in use) ne ...

  8. Dist

    Description 数据范围:\(1<=n<=10^5,1<=k<=18,1<=k_i<=10^7,\sum |s_i|<=3*10^5\) Soluti ...

  9. oracle系统表v$session、v$sql字段说明

    在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESS ...

  10. django 学习笔记(转)

    原文链接:https://my.oschina.net/linktime/blog/105280 例如有一下模型 from django.db import models class person(m ...