python8-总结
一、enumerate
enumerate() :用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
a=enumerate(seasons) #一个enumerate(枚举)对象 ;list(a) #变成列表形式
例:1
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print( i, element)
例: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( (生成器)):生成器括号不用加。
浙公网安备 33010602011771号