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本文出自 “奋斗吧” 博客,转载请与作者联系!
原文:http://lvnian.blog.51cto.com/7155281/1846616