Python 幾個常用的內建函數

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


參考:http://docs.python.org/2/library/functions.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章