python8-总结

一、enumerate

enumerate() :用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

a=enumerate(seasons) #一个enumerate(枚举)对象 ;list(a) #变成列表形式

例:1

seq = ['one', 'two', 'three']

for i, element in enumerate(seq):

  print( ielement)

例:2

seasons = ['Spring', 'Summer', 'Fall', 'Winter']

list(enumerate(seasons))

结果:[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

二、bool

1、bool值为false的值:0,'',none,[],{},()

  例如:

  bool(0)
  结果:False

三、递归函数  

  def func(start,end,a=0,b=0):   #a=0,b=0默认参数

   if start==end:

     return a,b

 

   elif start %3==0 or start %7==0:

    a+=1

    b+=start

   ret=func(start+1,end,a,b)

   return ret   #在递归函数中必须有return返回值

四、break、continue、return

  return:结束函数,返回值,默认为none;函数的默认返回值为none

  break:结束当前循环

  continue:结束本次循环,进入下次循环

五、三元运算

  RES = "SB"  if name=="xiaohua"   else “SG”

六、迭代器(iterator)

 迭代器就是可迭代对象,只要遵循迭代器协议(next),生成的数据对象是可迭代对象

      a=[ 'q' 'w']  #不是可迭代对象,因为里面没有__iter__()方法

   iter_a=a.__iter__()    #把数据类型(列表)变成可迭代对象,遵循迭代器协议的对象,ter_a为可迭代对象(结果是生成迭代器)

七、生成器(generator)

  一种数据类型(本身就是可迭代对象),自动实现迭代协议(不用执行iter方法)

  表现形式:(1)生成器函数(yield);(2)生成器表达式----(  列表解析: ' 鸡蛋%s' %i  for i in range(10)  条件(可有可无)] #也是三元表达式   ;生成器表达式: ' 鸡蛋%s' %i  for i in range(10)  条件(可有可无)   )

八、map

  map(func,iterator)

九、sum

        sum(列表):sum会把列表转成可迭代对象求和,sum本身又有iter方法,列表会占内存;

  sum(  (生成器)):生成器括号不用加。

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-01-07 14:19  candh  阅读(321)  评论(0)    收藏  举报