冒泡排序
li = [44,33,28,23,8,7]
for i in range(len(li)-1): #取出一个值,然后与其它值做依次做比较
for j in range(i+1,len(li)):
if li[i]> li[j]:
temp = li[i];li[i]=li[j];li[j]=temp;
print li
for j in range(1,len(li)): #
for i in range(len(li)-j): #相邻两个值做比较
if li[i] < li[i+1]:
temp = li[i];li[i] = li[i+1];li[i+1] = temp
print li
如果字符串 列表 字典对象没有值,那么它的布尔值为False
lambda 简单函数的另一种写法,自动返回值
func = lambda arg:arg + 1
func()
如:def func1(a): func2 = lambda a:a+1
return a+1
n = func1(100) n=func2(100)
可以有多个参数,用逗号分隔
可以与下面的map,reduce,filter配合使用
如:result = map(lambda a:a+1,list) 将list中的每个值加1
map 遍历序列,对每一项元素进行相同的操作
map(fucntion,sequence[,sequence,…]) -à list
filter 遍历序列,对每一项操作的结果进行真假判断,只有为真的返回
filter(function or None,sequence) à list,tuple or string 如果用None,那么只对每一项进行真假判断
reduce 遍历序列,对其中的元素进行累积操作
reduce(function,sequcne[,initial]) à value
yield生成器
xrange为生成器
它会记住当前状态,返回yield的值,下次调用时从yield下面开始执行,一般放在循环中
decorator 装饰器
以一个函数做为参数的函数
def auth(func):
def inner():
print 'before'
func()
print 'after'
return inner
@auth
def f1():
print 'f1'
f1()
@的操作 1.先将下面的函数名f1做为参数传入装饰器函数中àauth(f1)
2.执行auth(f1),返回inner,相当于f1 -- >inner,当执行f1()时变成了inner()
带参数的装饰器
def auth(func):
def inner(*args,**kwargs):
print 'before'
func(*args,**kwargs)
print 'after'
return inner
@auth
def f1(a,b):
print 'f1'
f1(1,2)