溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中內置函數有哪些

發布時間:2020-08-03 10:08:01 來源:億速云 閱讀:197 作者:清晨 欄目:編程語言

小編給大家分享一下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中內置函數有哪些的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女