1.匿名函数 lamdba x:x**2 def f(x): return x**2 g = lambda x:x**2 print map(f,range(10)) print map(g,range(10)) 2.map函数 print map(f,range(10)) print map(g,range(10)) 3.排序函数sorted dic1 = { 9:2, 4:6, 8:1, ‘a‘:10 } print dic1 print sorted(dic1.items()) print sorted(dic1.items(),key=lambda x:x[0]) print sorted(dic1.items(),key=lambda x:x[1]) 4.迭代器 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143178254193589df9c612d2449618ea460e7a672a366000 迭代器仅仅记录一个开始,和一个结束,和当前位置,每循环一次就往下走一步 好处:节省内存空 其中:xrange(),xreadlines() import time def run(): print ‘test 1‘ time.sleep(1) yield 1 ##这个相当于reture 1 ,但是yield 1 的话,当你再次执行x.next()时还可以回来从这个地方开始执行下面的内容,直到遇到下一个yield再退出 # 而reture退出之后是无法回来再执行下面的内容 print ‘test 2‘ time.sleep(1) yield 2 print ‘test 3‘ time.sleep(1) yield 3 print ‘test 4‘ time.sleep(1) yield 4 print ‘test 5‘ task = run() task.next() print "--------do sth 1 -----------" task.next() print "--------do sth 2 -----------" task.next() print "--------do sth 3 -----------" task.next() print "--------do sth 4 -----------" task.next() print "--------do sth 5 -----------" task.next() ##这个时候会出现StopIteration报错 ##好处,可以让其和主程序来回切换取调用其他内容 5.正则表达 >>> import re >>> a = ‘asdasd3as9#23_454/45(*_dfdf_\\~r)3‘ >>> m = re.search(‘dfd‘,a) >>> print m <_sre.SRE_Match object at 0x10221a030> >>> print m.group() dfd >>> >>> >>> m = re.findall(‘[a-zA-Z]+‘,a) ##查找所有字母,元组的格式返回 >>> print m [‘asdasd‘, ‘as‘, ‘dfdf‘, ‘r‘] >>> >>> >>> m = re.split(‘\d+‘,a) >>> print m [‘asdasd‘, ‘as‘, ‘#‘, ‘_‘, ‘/‘, ‘(*_dfdf_\\~r)‘, ‘‘] >>> >>> >>> m = re.sub(‘\d+‘,"|",a,count=3) >>> print m asdasd|as|#|_454/45(*_dfdf_\~r)3 >>> >>> a ‘asdasd3as9#23_454/45(*_dfdf_\\~r)3‘ >>> >>> a=‘192.173.12.121‘ ##匹配ip >>> a ‘192.173.12.121‘ >>> re.search(‘(\d+)(\.\d+){3}‘,a).group() ‘192.173.12.121‘ 6.递归函数 def calc(n): print ‘------------->‘,n if n > 0: calc((n/2)) calc(20) -------------> 20 -------------> 10 -------------> 5 -------------> 2 -------------> 1 -------------> 0
时间: 2024-12-28 14:08:07