zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    包的初识与使用
    时间 随机 模块
    规范化开发
    解析Javascript事件冒泡机制
    Java垃圾回收机制
    Java 垃圾收集机制
    javac 编译与 JIT 编译
    JAVA对文件类型的校验
    多态性实现机制——静态分派与动态分派
    类加载机制
  • 原文地址:https://www.cnblogs.com/qggg/p/8410693.html
Copyright © 2011-2022 走看看