day4 python学习随笔

  1. map reduce filter使用

map 遍历序列,对序列中每个元素进行操作,最终获取新的序列

例1

li = [11, 22, 33]

new_list = map(lambda a: a + 100, li)

例2

li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)


reduce 对于序列中的元素进行筛选,最终获取符合条件的序列


li = [11, 22, 33]

new_list = filter(lambda arg: arg > 22, li)

reduce 对于序列内所有元素进行累计操作

li = [11, 22, 33]

result = reduce(lambda arg1, arg2: arg1 + arg2, li,1000)
# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值 #arg1+1000+arg2


2.分页divmod

divmod(总条目数,每页最大容纳条目数)

输出(页数,余数)


3.yield

   如代码所示,range会在内存中创建所有指定的数字,而xrange不会立即创建,只有在迭代循环时,才去创建每个数组。

>>>  print  range ( 10 )
[ 0 1 2 3 4 5 6 7 8 9 ]
>>>  print  xrange ( 10 )
xrange ( 10 )


4.lambda使用。

my_lambda = lambda arg : arg + 1


5.装饰器

装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作

def  wrapper(func):
     def  result():
         print  'before'
         func()
         print  'after'
     return  result
 
@wrapper
def  foo():
     print  'foo'


6.冒泡算法

相邻两个值进行比较,将较大的值放在右侧,依次比较!

例:
li = [13, 22, 6, 99, 11]
for i in range(1,len(li)): 
   for m in range(i-1): 
        if li[m] > li[m+1]:
            li[m],li[m+1]=li[m+1],li[m]


你可能感兴趣的:(python,filter,reduce,元素,result)