小編給大家分享一下Python中內置函數有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
1、生成器(Generator):
通過列表生成式,我們可以直接創建一個列表。但是,受到內存限制,列表容量肯定是有限的。而且,創建一個包含100萬個元素的列表,不僅占用很大的存儲空間,如果我們僅僅需要訪問前面幾個元素,那后面絕大多數元素占用的空間都白白浪費了。在Python中,這種一邊循環一邊計算的機制,稱為生成器(Generator)。
如下是一個簡單的生成器:
>>> L = [x * x for x in range(10)] >>> L [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> g = (x * x for x in range(10)) >>> g <generator object <genexpr> at 0x104feab40>
2、lambda()方法:
lambda表達式的作用是
(1)python寫一些執行代碼是,使用lambda可以省下定義函數過程;
(2)對于一些比較抽象并且整個程序執行下來只需要調用一兩次的函數,使用lambda不需要考慮命名的問題;
(3)簡化代碼的可讀性,不用閱讀函數時跳到def定義部分。
實例
>>> s = lambda x:"yes" if x==1 else "no" >>> s(0) 'no' >>> s(1) 'yes' >>> g = lambda x : 2 * x +1 >>> g(3) 7 >>> type(g) <class 'function'> >>> lambda x : 2 * x +1 <function <lambda> at 0x00000000034F3D08>
3、filter()方法(過濾器):
filter() 函數用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判斷,然后返回 True 或 False,最后將返回 True 的元素放到新列表中。
注意: Pyhton2.7 返回列表,Python3.x 返回迭代器對象,可強制轉換成list類型
實例1
def is_odd(n): return n % 2 == 1 newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(newlist) 輸出結果 : [1, 3, 5, 7, 9]
實例2
python3: a = filter(lambda x: x % 2 == 0, range(10)) print(list(a)) 輸出 [0, 2, 4, 6, 8]
4、reduce()方法:
reduce() 函數會對參數序列中元素進行累積。函數將一個數據集合(鏈表,元組等)中的所有數據進行下列操作:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function 函數運算,最后得到一個結果。
>>>def add(x, y) : # 兩數相加 ... return x + y ... >>> reduce(add, [1,2,3,4,5]) # 計算列表和:1+2+3+4+5 15 >>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函數 15
在 Python3 中,reduce() 函數已經被從全局名字空間里移除了,它現在被放置在 fucntools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調用 reduce() 函數:
from functools import reduce
5、map()方法:
map() 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數 [1, 4, 9, 16, 25] # 提供了兩個列表,對相同位置的列表數據進行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]
如果函數有多個參數, 但每個參數的序列元素數量不一樣, 會根據最少元素的序列進行:
>>> listx = [1,2,3,4,5,6,7] # 7 個元素 >>> listy = [2,3,4,5,6,7] # 6 個元素 >>> listz = [100,100,100,100] # 4 個元素 >>> list_result = map(lambda x,y,z : x**2 + y + z,listx, listy, listz) >>> print(list(list_result)) [103, 107, 113, 121]
明顯可以看出是由于 lambda 中的 z 參數,實際是使用了 listz, 而 listz 里面只有 4 個元素, 所以即使 listx 有 7 個元素, listy 有 6 個元素,也不會繼續執行了,只執行了 4 個元素的的計算。
注意:
Python 2.x 返回列表。
Python 3.x 返回迭代器對象。
以上是Python中內置函數有哪些的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。