zoukankan      html  css  js  c++  java
  • python之enumerate

    http://eagletff.blog.163.com/blog/static/116350928201266111125832/
    一般情况下,如果要对一个列表或者数组既要遍历索引又要遍历元素时,可以用enumerate

    比如:
    for index,value in enumerate(list):
         print index,value
    当然也可以
    for i in range(0,len(list)):
         print i,list[i]
    相比较而言,前者更简练
    另外一种使用情况,当要计算文件的行数的时候,可以这样写:
    lineNum = len(open(fileName,'r').readlines())
    不过如果文件巨大,这种方式可能会造成严重问题,比如机器挂掉
    这个时候可以使用enumerate,python cookbook里举出了这样的例子
    lineNum = -1
    for count,line in enumerate(open(fileName,'r')):
         print count
         lineNum+=1
    print lineNum
    试过用上面的脚本来统计一个1GB大小的log文件(最后统计出来大约有18000000行),运行脚本的时候,CPU占用率比较高(看来是做计算的比较多),但是脚本用到的内存不多,显示的python占用内存为5M多
    不过如果用readlines的方法,内存飙到了200M
    将文本文件的全部内容按照分行,作为一个列表读出的5种方法 
    list_of_all_the_lines = file_object.readlines(  )          
    list_of_all_the_lines = file_object.read(  ).splitlines(1)  
    list_of_all_the_lines = file_object.read().splitlines(  ) 
    list_of_all_the_lines = file_object.read(  ).split(' ') 
    list_of_all_the_lines = list(file_object)

  • 相关阅读:
    Hibernate缓存策略
    Hibernate初探之一对多映射 及 myeclipse自动生成hibernate文件方法
    Hibernate初探之单表映射
    01箱包问题
    oracle备份恢复
    旅游参考
    Linux中find常见用法示例
    oracle 比较两个用户表结构的区别。
    SSH自动断开连接的原因
    在Oracle中查看客户端连接的IP信息 .
  • 原文地址:https://www.cnblogs.com/cdsj/p/3552237.html
Copyright © 2011-2022 走看看