目錄python
filter(處理邏輯, 可遍歷對象)遍歷序列中的每一個元素,判斷每一個元素的布爾值爲True則保留元素.express
用法:返回執行結果爲TRUE的入參(入參是列表字符元組)數組
print filter(lambda x:x*x-4,range(10)) #結果:[0, 1, 3, 4, 5, 6, 7, 8, 9]
map(處理邏輯, 可遍歷的對象) 處理序列中的每一個元素, 元素個數及位置
與原來同樣.函數用法:對列表入參依次執行函數。入參爲列表,有多少個列表,就應該有多少個入參。性能
print map(lambda x:x*x-4,range(10)) #結果:[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77] print map(lambda x,y:x*y-4,range(3),[8,9,10]) #結果:[-4, 5, 16]
from funtools import reducegoogle
reduce(函數, 序列, 默認空參數)處理一個序列, 而後把寫進行合做操做code
用法:先把sequence中第一個值和第二個值當參數傳給function,再把function的返回值和第三個值當參數傳給fuction,最終返回一個結果值orm
#接收的入參個數只能爲2 print reduce(lambda x,y:x*y-4,range(4)) #結果:-40 #計算0到100的和 print reduce(lambda x,y:x+y, range(101)) #結果:5050 print reduce(lambda x,y:x+y, range(101),100) #結果:5150
sort是容器的函數,sorted是Python的內建函數相同的參數。對象
簡單解釋一下兩函數:blog
sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) sort是容器的函數,sorted是Python的內建函數相同的參數。 cmp:用於比較的函數,比較什麼由key決定,有默認值,迭代集合中的一項。cmp(e1, e2) 是帶兩個參數的比較函數, 返回值: 負數: e1 < e2, 0: e1 == e2, 正數: e1 > e2。 默認爲 None, 即用內建的比較函數。 key:用列表元素的某個已命名的屬性或函數(只有一個參數而且返回一個用於排序的值)做爲關鍵字,有默認值,迭代集合中的一項。 reverse:排序規則,reverse = True 或者 reverse = False,有默認值。
對於一個無序的列表a,調用a.sort(),對a進行排序後返回a。
而對於一樣一個無序的列表a,調用sorted(a),對a進行排序後返回一個新的列表,而對a不產生影響。
>>> a=[1,3,5,2,9,4,7,8,6,0] >>> a.sort() >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a=[1,3,5,2,9,4,7,8,6,0] >>> sorted(a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a [1, 3, 5, 2, 9, 4, 7, 8, 6, 0]
複雜點的
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> list1.sort() >>> list1 [(4, 'wutenglan', 30), (6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25)] >>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> sorted(list1) [(4, 'wutenglan', 30), (6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25)] >>> list1 [(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
當list由tuple組成時,默認狀況下,sort和sorted都會根據tuplp[0]做爲排序的key進行排序
基於key函數排序:
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> list1.sort(key=lambda employee : employee[2]) >>> list1 [(6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25), (4, 'wutenglan', 30)] >>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> sorted(list1,key=lambda employee : employee[2]) [(6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25), (4, 'wutenglan', 30)] >>> list1 [(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
基於cmp函數排序:
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> list1.sort(cmp=lambda x,y : cmp(x[1],y[1])) >>> list1 [(7, 'boduoyejiyi', 25), (6, 'cangjingkong', 20), (4, 'wutenglan', 30)] >>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)] >>> sorted(list1,cmp=lambda x,y : cmp(x[1],y[1])) [(7, 'boduoyejiyi', 25), (6, 'cangjingkong', 20), (4, 'wutenglan', 30)] >>> list1 [(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
3.基於升序/降序排序:
>>> a=[1,3,5,2,9,4,7,8,6,0] >>> a.sort(reverse=False) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a.sort(reverse=Ture) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'Ture' is not defined >>> a=[1,3,5,2,9,4,7,8,6,0] >>> a.sort(reverse=False) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a=[1,3,5,2,9,4,7,8,6,0] >>> a.sort(reverse=True) >>> a [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] >>> a=[1,3,5,2,9,4,7,8,6,0] >>> sorted(a,reverse=False) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> sorted(a,reverse=True) [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] >>> a [1, 3, 5, 2, 9, 4, 7, 8, 6, 0]
abs(x)
求絕對值 1. 參數能夠是整型, 也能夠是複數 2. 若參數是複數, 則返回複數的模
complex([real[,imag]])
建立一個複數
divmod(a,b)
分別取商和餘數 注意: 整型, 浮點型均可以
float([x])
將一個字符串或數轉換爲浮點數,若是五參數將返回0.0
int([x[,base]])
將一個字符轉換爲int類型,base表示進制
long([x[,base]])
將一個字符串轉換爲long類型
pow(x,y[,z])
返回x的一次冪
range([start],stop[,step])
產生一個序列, 默認從0開始
round(x[,n])
四捨五入
sum(iterable[,start])
對集合求和
oct(x)
將一個數字轉化爲8進制
hex(x)
將整數x轉化爲16進制字符串
chr(i)
返回整數i對應的ASCII字符
bin(x)
將整數轉化爲二進制字符串
bool([x])
將x轉化爲Boolean類型
basestring()
str和unicode的超類 不能直接調用, 能夠用做isinstance判斷
format(value[,format_spec])
格式化輸出字符串 格式化的參數順序從0開始,如"I am {0},I like {1}"
unichr(i)
返回給定int類型的unicode
enumerate(sequence [, start = 0])
返回一個可枚舉的對象,該對象的next()方法將返回一個tuple >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下標從 1 開始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
iter(0[,sentinel])
生成一個對象的迭代器,第二個參數表示分隔符 s = '軟件是深圳的將來' #s是一個iterable對象,它有__getitem__()方法 it = iter(s) #it是一個iterator對象,它有 __next__()和__iter__()方法 print(s) print(it.__next__()) print(it.__next__()) print(it.__next__()) print(it.__next__()) 結果輸出以下: 軟件是深圳的將來 軟 件 是 深
max(iterable[, args...][key])
返回集合中的最大值
min(iterable[, args...][key])
返回集合中的最小值
dict([arg])
建立數據字典
list([iterable])
將一個集合類轉換爲另一個集合類
set()
返回新的集合對象。 >>>x = set('runoob') >>> y = set('google') >>> x, y (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重複的被刪除 >>> x & y # 交集 set(['o']) >>> x | y # 並集 set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) >>> x - y # 差集 set(['r', 'b', 'u', 'n']) >>>
frozenset([iterable])
產生一個不可變的set
str([object])
轉換爲string類型
tuple([iterable])
生成一個tuple類型
xrange([start], stop[, step])
xrange()函數與range()相似,但xrnage()並不建立列表,而是返回一個xrange對象,它的行爲與列表類似,可是隻在須要時才計算列表值,當列表很大時,這個特性能爲咱們節省內存
all(iterable)
一、集合中的元素都爲真的時候爲真 二、特別的,若爲空串返回爲True
any(iterable)
一、集合中的元素有一個爲真的時候爲真 二、特別的,若爲空串返回爲False
cmp(x, y)
若是x < y ,返回負數;x == y, 返回0;x > y,返回正數
callable(object)
檢查對象object是否可調用 一、類是能夠被調用的 二、實例是不能夠被調用的,除非類中聲明瞭__call__方法
classmethod()
一、註解,用來講明這個方式是個類方法 二、類方法便可被類調用,也能夠被實例調用 三、類方法相似於Java中的static方法 四、類方法中不須要有self參數
compile(source, filename,mode[, flags[, dont_inherit]])
將source編譯爲代碼或者AST對象。代碼對象可以經過exec語句來執行或者eval()進行求值。 一、參數source:字符串或者AST(Abstract Syntax Trees)對象。 二、參數 filename:代碼文件名稱,若是不是從文件讀取代碼則傳遞一些可辨認的值。 三、參數model:指定編譯代碼的種類。能夠指定爲 ‘exec’,’eval’,’single’。 四、參數flag和dont_inherit:這兩個參數暫不介紹
dir([object])
一、不帶參數時,返回當前範圍內的變量、方法和定義的類型列表; 二、帶參數時,返回參數的屬性、方法列表。 三、若是參數包含方法__dir__(),該方法將被調用。當參數爲實例時。 四、若是參數不包含__dir__(),該方法將最大限度地收集參數信息
delattr(object, name)
刪除object對象名爲name的屬性
eval(expression [, globals [, locals]])
計算表達式expression的值
execfile(filename [, globals [, locals]])
用法相似exec(),不一樣的是execfile的參數filename爲文件名,而exec的參數爲字符串.
getattr(object, name [, defalut])
獲取一個類的屬性
globals()
返回一個描述當前全局符號表的字典
hasattr(object, name)
判斷對象object是否包含名爲name的特性
hash(object)
若是對象object爲哈希表類型,返回對象object的哈希值
isinstance(object, classinfo)
判斷object是不是class的實例
issubclass(class, classinfo)
判斷是不是子類
len(s)
返回集合長度
locals()
返回當前的變量列表699
memoryview(obj)
返回一個內存鏡像類型的對象
next(iterator[, default])
相似於iterator.next()
object()
基類
property([fget[, fset[, fdel[, doc]]]])
屬性訪問的包裝類,設置後能夠經過c.x=value等來訪問setter和getter
reload(module)
從新加載模塊
setattr(object, name, value)
設置屬性值
repr(object)
將一個對象變幻爲可打印的格式
slice(start,end)
方法可從已有數組中返回選定的元素,返回一個新數組,包含從start到end(不包含該元素)的數組元素。
staticmethod
聲明靜態方法,是個註解
super(type[, object-or-type])
引用父類
type(object)
返回該object的類型
vars([object])
返回對象的變量,若無參數與dict()方法相似
bytearray([source [, encoding [, errors]]])
返回一個byte數組 一、若是source爲整數,則返回一個長度爲source的初始化數組; 二、若是source爲字符串,則按照指定的encoding將字符串轉換爲字節序列; 三、若是source爲可迭代類型,則元素必須爲[0 ,255]中的整數; 四、若是source爲與buffer接口一致的對象,則此對象也能夠被用於初始化bytearray.
zip([iterable, ...])
>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 返回一個對象 >>> zipped <zip object at 0x103abc288> >>> list(zipped) # list() 轉換爲列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素個數與最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> a1, a2 = zip(*zip(a,b)) # 與 zip 相反,zip(*) 可理解爲解壓,返回二維矩陣式 >>> list(a1) [1, 2, 3] >>> list(a2) [4, 5, 6] >>>
file(filename [, mode [, bufsize]])
file類型的構造函數,做用爲打開一個文件,若是文件不存在且mode爲寫或追加時,文件將被建立。添加‘b’到mode參數中,將對文件以二進制形式操做。添加‘+’到mode參數中,將容許對文件同時進行讀寫操做 一、參數filename:文件名稱。 二、參數mode:'r'(讀)、'w'(寫)、'a'(追加)。 三、參數bufsize:若是爲0表示不進行緩衝,若是爲1表示進行行緩衝,若是是一個大於1的數表示緩衝區的大小 。
input([prompt])
獲取用戶輸入 推薦使用raw_input,由於該函數將不會捕獲用戶的錯誤輸入
open(name[, mode[, buffering]])
打開文件
與file有什麼不一樣?推薦使用open
打印函數
raw_input([prompt])
設置輸入,輸入都是做爲字符串處理
help()--幫助信息