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

  

 

posted @ 2018-02-03 20:47  .每天进步一点点  阅读(689)  评论(0编辑  收藏  举报