#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]