标签:oy
冒泡算法:
相邻两个值进行比较,将较大的值放在右侧,依次比较!
例如:
li = [13, 22, 6, 99, 11]
for m in range(4): # 等价于 #for m in range(len(li)-1):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
li = [13, 22, 6, 99, 11]
for m in range(4): # 等价于 #for m in range(len(li)-1):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
for m in range(3): # 等价于 #for m in range(len(li)-2):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
for m in range(2): # 等价于 #for m in range(len(li)-3):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
for m in range(1): # 等价于 #for m in range(len(li)-4):
if li[m]> li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
print li
第二步
li = [13, 22, 6, 99, 11]
for i in range(1,5):
for m in range(len(li)-i):
if li[m] > li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp
第三步
递归
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368
def func(arg1,arg2):
if arg1 == 0:
print arg1, arg2
arg3 = arg1 + arg2
print arg3
func(arg2, arg3)
func(0,1)
lambda表达式:
对于简单的函数,也存在一种简便的表示方式,即:lambda表达式
# 定义函数(普通方式)
def func(arg):
return
arg + 1
# 执行函数
result = func(123)
# ###################### lambda ######################
# 定义函数(lambda表达式)
my_lambda = lambda arg : arg + 1
# 执行函数
result = my_lambda(123)
lambda存在意义就是对简单函数的简洁表示
一、map
例:
li = [11, 22, 33] new_list = map(lambda a: a + 100, li) li = [11, 22, 33] sl = [1, 2, 3] new_list = map(lambda a, b: a + b, li, sl) 二、filter 对于序列中的元素进行筛选,最终获取符合条件的序列[object Object] li = [11, 22, 33] new_list = filter(lambda arg: arg > 22, li) #filter第一个参数为空,将获取原来序列 三、reduce 对于序列内所有元素进行累计操作 li = [11, 22, 33] result = reduce(lambda arg1, arg2: arg1 + arg2, li) # reduce的第一个参数,函数必须要有两个参数 # reduce的第二个参数,要循环的序列 # reduce的第三个参数,初始值 获取序列所有元素的和 yield生成器 range会在内存中创建所有指定的数字,而xrange不会立即创建,只有在迭代循环时,才去创建每个数组。 def nrange(num): temp = -1 while True: temp = temp + 1 if temp >= num: return else: yield temp 自定义生成器nrange 2、文件操作的 read 和 xreadlinex 的的区别 1.read会读取所有内容到内存 2.xreadlines则只有在循环迭代时才获取
装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。 import functools def wrapper(func): @functools.wraps(func) def wrapper(): print ‘before‘ func() print ‘after‘ return wrapper @wrapper def foo(): print ‘foo‘ 或 #!/usr/bin/env python #coding:utf-8 def Before(request,kargs): print ‘before‘ def After(request,kargs): print ‘after‘ def Filter(before_func,after_func): def outer(main_func): def wrapper(request,kargs): before_result = before_func(request,kargs) if(before_result != None): return before_result; main_result = main_func(request,kargs) if(main_result != None): return main_result; after_result = after_func(request,kargs) if(after_result != None): return after_result; return wrapper return outer @Filter(Before, After) def Index(request,kargs): print ‘index‘ if __name__ == ‘__main__‘: Index(1,2)
本文出自 “9392804” 博客,谢绝转载!
标签:oy
原文地址:http://9402804.blog.51cto.com/9392804/1715345