#build-in functions ''' 1 list(iter) 将iter转换为list 2 tuple(iter) 将iter转换为tuple 3 enumerate(iter,start=0) 4 len(seq) 获取seq的长度 5 max(iter,key=None) or max(arg0,arg1,arg2..,key = None) 6 min(iter,key=None) or min(arg0,arg1,arg2..,key=None) 7 reversed(seq) 8 sorted(iter,cmp=None,key=None,reverse=False) #排序 9 sum(seq[,start]), start is init value 10 zip(iter1,iter2,...) zip(*zip(iter1,iter2,...)) 11 cmp(x,y)->integer 12 locals() 13 globals() 14 map(function,iter1,iter2,...) 15 reduce(function,iter1,init) 16 filter(function,iter) 17 next(iter) '''
具体就不解释说明了,直接上代码,查看输出结果更为直观
详细例子:
class Point: def __init__(self,x,y): self.x = x self.y = y def dist(self,b): dis = (self.x - b.x)*(self.x - b.x) + (self.y - b.y)*(self.y - b.y) return math.sqrt(dis) def __repr__(self): return "(%d,%d)" % (self.x,self.y) def func(a,b): if a.x == b.x: return a.y - b.y return a.x - b.x list = [] for i in xrange(0,10): x = random.randint(0,20) y = random.randint(0,20) p = Point(x,y) list.append(p) list.sort(cmp=func) a = [1,2,3,4,5] b = [5,4,3,2,1] print sum(a,1) c = zip(a,b) print c print zip(*c) print cmp(a,b) loc = locals()['math'] print loc.sqrt(5) print map(lambda x,y: x*y,a,b) print reduce(lambda x,y: x+y,a,-1) print filter(lambda x: x>3,a)结果:
sum: 16 zip: [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)] zip*: [(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)] cmp: -1 locals: 2.2360679775 map: [5, 8, 9, 8, 5] reduce: 14 filter: [4, 5]