网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 前端脚本 » 正文

enum,enumerate

2020-3-11 15:13:17 | 作者:老铁SEO | 0个评论 | 人浏览

  一个enum是定义一组值的对象,它可以包括零个或多个值成员。只须定义一个enum型的对象.enum对象的值都会自动获得一个数字值,从0开始,依次递增。如:


  EnumDemo.java


  packagenet.javagarage.enums;


  publicclassEnumDemo{


  privateenumSeasons{


  winter,spring,summer,fall


  }


  publicstaticvoidmain(String[]args){


  for(Seasonss:Seasons.values()){


  System.out.println(s);


  }


  }


  }


  尽管enums有这么多的属性,但并不是用的越多越好,如果那样还不如直接用类来的直接.enums的优势在定义int最终变量仅当这些值有一定特殊含义时.但是如果需要的是一个类,就定义一个类,而不是enum。


  枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,sat值为6。


  只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。


  enumerate


  enumerate()说明


  enumerate()是python的内置函数


  enumerate在字典上是枚举、列举的意思


  对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值


  enumerate多用于在for循环中得到计数


  例如对于一个seq,得到:


  (0,seq[0]),(1,seq[1]),(2,seq[2])


  1


  1


  enumerate()返回的是一个enumerate对象,例如:


  enumerate()使用


  如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:


  list1=["这","是","一个","测试"]


  foriinrange(len(list1)):


  printi,list1[i]123123


  上述方法有些累赘,利用enumerate()会更加直接和优美:


  list1=["这","是","一个","测试"]


  forindex,iteminenumerate(list1):


  printindex,item


  >>>


  0这


  1是


  2一个


  3测试1234567812345678


  enumerate还可以接收第二个参数,用于指定索引起始值,如:


  list1=["这","是","一个","测试"]


  forindex,iteminenumerate(list1,1):


  printindex,item


  >>>


  1这


  2是


  3一个


  4测试1234567812345678


  补充


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


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


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


  可以利用enumerate():


  count=-1


  forindex,lineinenumerate(open(filepath,'r')):


  count+=1


  enumeration


  Enumeration和Iterator的主要区别


  (1)java中的集合类都提供了返回Iterator的方法,就是迭代器,它和Enumeration(枚举)的主要区别其实就是Iterator可以删除元素,但是Enumration却不能。


  (2)还有一点要注意的就是,使用Iterator来遍历集合时,应使用Iterator的remove()方法来删除集合中的元素,使用集合的remove()方法将抛出ConcurrentModificationException异常。


  (3)Enumeration接口的功能与Iterator接口的功能是重复的。此外,Iterator接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用Iterator接口而不是Enumeration接口。

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    相关推荐