python enumrate使用
新接触了一个函数 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使用的更多相关文章
- Python高手之路【二】python基本数据类型
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...
- 跟着老男孩教育学Python开发【第二篇】:Python基本数据类型
运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**3 ...
- Python基础(二)
本章内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和x ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python基础之数据类型(二)
Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...
- Python之路,Day2 - Python基础2
def decode(self, encoding=None, errors=None): """ 解码 """ ""& ...
- Python全栈考试-部分试题(精选)
Python全栈考试(一) Python全栈考试(一) 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py ...
- python数据类型详解及列表字典集合推导式详解
一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
随机推荐
- 格式化输出Json对象
1.调用方式: alert(JsonUti.convertToString(jsonObj)); //jsonObj为json对象. 2.格式化输出Json对象方法定义: var JsonUti = ...
- (转)linux 内存管理——内核的shmall 和shmmax 参数
内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...
- js写插件教程深入
原文地址:https://github.com/lianxiaozhuang/blog 转载请注明出处 js 写插件教程深入 1.介绍具有安全作用域的构造函数 function Fn(name){ t ...
- ql Server 2012完全卸载方法
第一步,在控制面板里面找到程序——卸载程序这一项,打开之后就会是这样的了 第二步,经过第一步打开卸载程序后,在里面找到Microsoft SQLserver 2012 (64-bit)这一项,可以通过 ...
- NESTED最终与外部事务合并在一起提交
NESTED最终与外部事务合并在一起提交
- Linux_Centos7_设置MySql定时备份
一.查看是否安装了必要的组件 [root@localhost /]# rpm -qa | grep cron cronie-1.4.11-14.el7_2.1.x86_64 cronie-anacro ...
- 【bzoj3132】 Sdoi2013—森林
http://www.lydsy.com/JudgeOnline/problem.php?id=3123 (题目链接) 题意 给出$n$个点的森林,每个点有一个非负点权,$m$个操作.连接两个点,查询 ...
- centos 7使用docker安装lnmp和redis环境
#================Docker基础操作========================== #启动docker服务service docker start#搜索可用docker镜像#h ...
- c#(.Net)解析xml
1.一般处理 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<?xml version=\"1.0\&quo ...
- Linux上SSH登录远程服务器免密码
在本地的客户端SSH到远程服务端时,每次都要输入用户名和密码,如果不想每次都输入密码则可以使用以下操作. 首先在本地的客户端输入 ssh-keygen [keysystem@localhost ~]$ ...