Python常用內建函數介紹

來源:互聯網
上載者:User

標籤:ros   key   microsoft   比較   inf   oat   ali   syn   trace   

  Python提供了一個內聯模組buildin。內聯模組定義了一些開發中經常使用的函數,利用這些函數可以實現資料類型的轉換、資料的計算、序列的處理等功能。下面將介紹內聯模組中的常用函數。

  Python內建函數的基本用法可以查看Python安裝目錄下的doc目錄下的說明文檔,本文僅介紹Python典型的內建函數使用方法。

reduce(function, iterable[, initializer]) 對序列的值進行累計計算

  reduce()可以實現對序列進行連續處理的功能。reduce()的聲明如下:

 reduce(function, sequence[, initial]) -> value

 下面代碼示範了reduce(連續處理的功能。

(1)實現對指定列表數字進行累加。

>>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])15

(2)指定initial值,再執行列表數字累加操作

>>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5], 15)30
filter(function, iterable) 使用指定方法對序列過濾可迭代對象的元素

  filter()可以對某個序列做過濾處理,判斷自訂函數的參數返回的結果是否為真來過濾,並一次性返回處理結果。filter()的聲明如下:

 filter(function or None, sequence) -> list, tuple, or string

  下面這段代碼示範了filter()過濾序列的功能,從給定的列表中過濾出大於0的數字。

>>> filter(lambda x:x>0,range(-9,10))[1, 2, 3, 4, 5, 6, 7, 8, 9]
map(function, iterable, ...)  使用指定方法處理傳入的每個可迭代對象的元素,產生新的可迭代對象

  map()可以對多個序列的每個元素都執行相同的操作,並返回一個map對象。map()的聲明如下所示:

map(function, sequence[, sequence, ...]) -> list

  下面代碼示範了map()函數處理的功能,

(1)函數只有1個參數,傳入1個序列。求指定序列每個元素的平方

>>> map(lambda x:x*x,range(1,10))[1, 4, 9, 16, 25, 36, 49, 64, 81]

 說明:map()函數傳入序列的個數需要與map中第1個參數的函數參數個數要一致。否則會報報錯。如下

>>> map(lambda x:x*x,range(1,10),range(1,10))Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: <lambda>() takes exactly 1 argument (2 given)

(2)求2個序列元素的相加後的值。兩個序列的元素個數一致。

>>> map(lambda x,y:x+y,range(1,10),range(11,20))[12, 14, 16, 18, 20, 22, 24, 26, 28]

  上述例子中傳入map()函數的2個序列元素個數一致,每個序列中的元素一一對應進行計算。如果每個序列的長度不相同,則短的序列後會補充None,再進行計算。

enumerate(sequence, start=0) 根據可迭代對象建立枚舉對象

  enumerate()通常用於將一個可遍曆的資料對象(如列表、元組或字串),以列表形式返回,列表中的元素為索引和值組成的元組。

seasons = [‘Spring‘, ‘Summer‘, ‘Fall‘, ‘Winter‘]for index,value in enumerate(seasons):    print index,value

輸出結果如下:

0 Spring1 Summer2 Fall3 Winter
isinstance(object, classinfo) 判斷對象是否是類或者類型元組中任意類元素的子類 
>>> num = 2>>> isinstance (num, int)True>>> isinstance (num,str)False>>> isinstance (num,(str,int,list))True
raw_input([prompt])/input([prompt]) 擷取控制台的輸入

  raw_input([prompt])/input([prompt]) 函數都可以用於擷取控制台的輸入 ,二者的使用區別如下:

(1)raw_input()將所有輸入作為字串看待,返回字串類型。而input()在對待純數字輸入時具有自己的特性,它返回所輸入的數位類型(int, float)。

(2)二者均能接收字串,但raw_input()直接讀取控制台的輸入(任何類型的輸入它都可以接收)。而對於input(),它希望能夠讀取一個合法的 python 運算式,即你輸入字串的時候必須使用引號將它括起來,否則它會引發一個 SyntaxError 。

(1)同為輸入數字,擷取時類型不同

>>> num = raw_input(‘Please input a number:‘)Please input a number:23>>> type(num)<type ‘str‘>>>> print num23>>> num = input(‘Please input a number:‘)Please input a number:23>>> type(num)<type ‘int‘>>>> print num23

(2)輸入字串,二者輸入方式不同

>>> str = raw_input(‘Please input a string:‘)Please input a string:hello>>> print strhello>>> str = input(‘Please input a string:‘)Please input a string:‘hello‘>>> print strhello

 如果使用input()函數使用不帶引號的方式輸入,函數拋出NameError錯誤,如下

>>> str = input(‘Please input a string:‘)Please input a string:helloTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "<string>", line 1, in <module>NameError: name ‘hello‘ is not defined
sorted(iterable[, cmp[, key[, reverse]]]) 返回一個排序後的列表

  sorted()函數用於排序指定序列。返回結果是1個新的序列,不會在原序列上進行操作。sorted()的聲明如下:

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

  參數說明:

iterable 可迭代對象。cmp 比較函數,cmp()有兩個參數,參數的值都是從可迭代對象中取出。key 主要是用來進行比較的元素,只有一個參數,指定可迭代對象中的一個元素來進行排序。reverse 定序,reverse = True 降序 , reverse = False 升序(預設)。

(1)對指定列表進行排序

>>> lst = [5,7,6,3,4,1,2]>>> lst_sorted = sorted(lst)>>> lst[5, 7, 6, 3, 4, 1, 2]>>> lst_sorted[1, 2, 3, 4, 5, 6, 7]

(2)對指定序列進行排序,cmp參數的使用。

>>> lst = [(‘b‘,2),(‘a‘,1),(‘c‘,3),(‘d‘,4)]>>> lst_sorted = sorted(lst, cmp=lambda x,y:cmp(x[1],y[1]))>>> print lst_sorted[(‘a‘, 1), (‘b‘, 2), (‘c‘, 3), (‘d‘, 4)]

(3)key參數的使用,

>>> lst_sorted = sorted(lst, key = lambda x:int(x.split(‘ ‘)[0].split(‘.‘)[3]))>>> print lst_sorted[‘192.168.0.1 Success‘, ‘192.168.0.2 Success‘, ‘192.168.0.10 Fail‘]

(4)reverse參數的使用。

>>> lst = [‘192.168.0.1 Success‘,‘192.168.0.10 Fail‘,‘192.168.0.2 Success‘]>>> lst_sorted = sorted(lst, key = lambda x:int(x.split(‘ ‘)[0].split(‘.‘)[3]), reverse=True)>>> print lst_sorted[‘192.168.0.10 Fail‘, ‘192.168.0.2 Success‘, ‘192.168.0.1 Success‘]

 

Python常用內建函數介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.