最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 匿名函數(shù)與三元運算學習筆記

 更新時間:2020年10月23日 14:33:20   作者:戰(zhàn)爭熱誠  
這篇文章主要介紹了python 匿名函數(shù)與三元運算的相關資料,幫助大家更好的理解和學習python 編程,感興趣的朋友可以了解下

匿名函數(shù)

  匿名函數(shù)就是不需要顯示式的指定函數(shù)名

首先看一行代碼:

def calc(x,y):
    return x*y
print(calc(2,3))
 
# 換成匿名函數(shù)
 
calc = lambda x,y:x*y
print(calc(2,3))

  你也許會說,用上這個東西沒感覺有毛方便呀, 。。。。呵呵,如果是這么用,確實沒毛線改進,不過匿名函數(shù)主要是和其它函數(shù)搭配使用的呢,如下

res = map(lambda x:x**2,[1,2,3,4,5])
print(list(res))
# 結(jié)果:
# [1, 4, 9, 16, 25]
for i in res:
    print(i)
# 結(jié)果:
# 1
# 4
# 9
# 16
# 25

匿名函數(shù)的作用:

  1,節(jié)省代碼

  2,看著高級

lambda表達式

  lambda原型為:lambda參數(shù):操作(參數(shù))

  lambda函數(shù)也叫匿名函數(shù),即沒有具體名稱的函數(shù),他允許快速定義單行函數(shù),可以用在任何需要函數(shù)的地方。這區(qū)別于def定義的函數(shù)。

  lambda和def的區(qū)別:

  • def 創(chuàng)建的方法是有名稱的,而lambda沒有
  • lambda會返回一個函數(shù)對象,但這個對象不會賦值給一個標識符,而def則會把函數(shù)對象賦值給一個變量
  • lambda只是一個表達式,而def則是一個語句
  • lambda表示式“:” 后面,只能有一個表達式,def則可以有多個。
  • 像 if 或者 for 或者 print 等語句不能用于lambda中,def可以
  • lambda一般用來定義簡單的函數(shù),而def可以定義復雜的函數(shù)
>>> def add(x,y):           #定義一個加法函數(shù)
    return x+y              #返回兩個參數(shù)的相加的值
 
>>> z=f(3,4)               
>>> print(z)
7                                     #調(diào)用加法函數(shù)返回7
>>> lambda x,y:x+y
<function <lambda> at 0x0000020F385B86A8>   
#可以看到lambda是一個   function(函數(shù))類對象
>>> f=lambda x,y:x+y          #功能實現(xiàn)的跟add(x,y)一樣       
>>> f(1,2)
3
>>> f(3,4)
7
>>> def multiply(x,y):
    return x*y
 
>>> multiply(3,4)
12
>>> multiply=lambda x,y:x*y
>>> multiply(3,4)
12
>>> def subtract(x,y):
    return x-y
 
>>> subtract(3,4)
-1
>>> subtract=lambda x,y:x-y
>>> subtract(3,4)
-1
 
>>> def divide(x,y):
    return x/y
 
>>> divide(4,2)
2.0
>>> divide=lambda x,y:x/y
>>> divide(4,2)
2.0
 
#上面的乘法函數(shù),減法函數(shù),除法函數(shù)都可以用lambda表達式來代替,更方便

lambda 的應用

# 2.lambda 的應用
# ---CASE 1
fs = map(lambda i:(lambda j: i*j), range(6))
print([f(2) for f in fs])
 
#---CASE 2
fs = [lambda j:i*j for i in range(6)]
print([f(2) for f in fs])
 
#---CASE 3
fs = []
for i in range(6):
    fs.append(lambda j:i*j)
    if i==3:
        break
print([f(2) for f in fs])
 
#---CASE 4
fs = [(lambda i:lambda j:i*j)(i) for i in range(6)]
print([f(2) for f in fs])
 
# 結(jié)果:
# [0, 2, 4, 6, 8, 10]
# [10, 10, 10, 10, 10, 10]
# [6, 6, 6, 6]
# [0, 2, 4, 6, 8, 10]

map()函數(shù)

  下面我們看map()函數(shù),它可以將一個函數(shù)映射到一個可枚舉類型上面。沿用上面給出的a和f,可以寫:

map(f , a)

也就是將函數(shù) f 依次套在 a 的每一個元素上面,獲得結(jié)果 。如果用lambda表達式來替換f,就變成了:

map( lambda x : x + 1, [1, 2, 3] )

是不是就一目了然。

Apply() 函數(shù)

  Python中apply函數(shù)的格式為: apply(func , *args , **kwargs)

  當然,func可以是匿名函數(shù)。

  用途:當一個函數(shù)的參數(shù)存在于一個元組或者一個字典中時,用來間接的調(diào)用這個函數(shù),并將元素或者字典的參數(shù)按照順序傳遞給參數(shù)。

  解析:args是一個包含按照函數(shù)所需參數(shù)傳遞的位置參數(shù)的一個元組。簡單來說,假如A函數(shù)的函數(shù)位置為A(a =1 , b =2),那么這個元組中就必須嚴格按照這個參數(shù)的位置順序進行傳遞(a=3,b=4),而不能是(b=4,a=3)這樣的順序。kwargs是一個包含關鍵字參數(shù)的字典,而其中args如果不傳遞,kwargs需要傳遞,則必須在args的位置留空。

  apply的返回值就是函數(shù)func函數(shù)的返回值。

def function(a,b): 
     print(a,b) 
 apply(function,('good','better')) 
 apply(function,(2,3+6)) 
 apply(function,('cai','quan')) 
 apply(function,('cai',),{'b':'caiquan'}) 
 apply(function,(),{'a':'caiquan','b':'Tom'}) 

輸出結(jié)果:

('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')

三元運算

  三元運算又稱三目運算,是對簡單的條件語句的簡寫。

舉個例子:簡單條件語句      ————>     三元運算

if 條件成立:
    val = 1
else:
    val = 2
val = 1 if 條件成立 else 2

python中的三元運算符不像其他語言,其他的一般都是

判定條件?為真時的結(jié)果:為假時的結(jié)果

result = 5 >3?1:0

而在python中的格式為:

為真時候的結(jié)果 if 判定條件  else 為假時的結(jié)果<br>result =x if condition else y

如:

1 if 5>0 else 0
def func(x,y):
  '''定義一個函數(shù),如果x大于y,返回x-y,否則,返回y-x'''
  return x-y if x>y else y-x

r1 = func(10,18)
r2 = func(18,12)
print(r1)
print(r2)

結(jié)果:
8
6

以上就是python 匿名函數(shù)與三元運算學習筆記的詳細內(nèi)容,更多關于python 匿名函數(shù)與三元運算的資料請關注腳本之家其它相關文章!

相關文章

  • python3里gbk編碼的問題解決

    python3里gbk編碼的問題解決

    本文主要介紹了python3里gbk編碼的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 聊聊python dropna()和notnull()的用法區(qū)別

    聊聊python dropna()和notnull()的用法區(qū)別

    這篇文章主要介紹了聊聊python dropna()和notnull()的用法區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python中的bool數(shù)組取反案例

    python中的bool數(shù)組取反案例

    這篇文章主要介紹了python中的bool數(shù)組取反案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python2.7編程中SQLite3基本操作方法示例

    Python2.7編程中SQLite3基本操作方法示例

    這篇文章主要介紹了Python2.7編程中SQLite3基本操作方法,涉及Python2.7操作sqlite3數(shù)據(jù)庫的增刪改查及防注入等相關技巧,需要的朋友可以參考下
    2017-08-08
  • python 用下標截取字符串的實例

    python 用下標截取字符串的實例

    今天小編就為大家分享一篇python 用下標截取字符串的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python self,cls,decorator的理解

    python self,cls,decorator的理解

    在python里面,self, cls 不是關鍵字,完全可以使用自己寫的任意變量代替實現(xiàn)一樣的效果
    2009-07-07
  • Python2.x中str與unicode相關問題的解決方法

    Python2.x中str與unicode相關問題的解決方法

    這篇文章主要介紹了Python2.x中str與Unicode相關問題的解決方法,Python2.x版本中由于沒有默認使用Unicode而會在實際使用中碰到一些字符問題,針對這些問題本文討論了一些解決方法,需要的朋友可以參考下
    2015-03-03
  • Python中Functools模塊的高級操作詳解

    Python中Functools模塊的高級操作詳解

    functools模塊是Python標準庫中的一個寶庫,提供了一些有用的功能,可以幫助您更好地利用函數(shù)的潛力,下面小編就來為大家介紹一下functools模塊的相關具體使用吧
    2023-11-11
  • python pandas 如何替換某列的一個值

    python pandas 如何替換某列的一個值

    python pandas 如何替換某列的一個值?今天小編就為大家分享一篇python pandas 實現(xiàn)替換某列的一個值方法,具有很好的參考價值,希望對大家有所幫助
    2018-06-06
  • python簡單批量梯度下降代碼

    python簡單批量梯度下降代碼

    大家好,本篇文章主要講的是python簡單批量梯度下降代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01

最新評論

平谷区| 张北县| 宝山区| 始兴县| 綦江县| 乌鲁木齐县| 屏东市| 凌源市| 新源县| 广南县| 临清市| 吴桥县| 个旧市| 民乐县| 邵东县| 上犹县| 鄂托克前旗| 云南省| 罗源县| 塔河县| 安多县| 郓城县| 秦安县| 蒲城县| 双鸭山市| 平乐县| 五大连池市| 兰坪| 雷州市| 东安县| 伊金霍洛旗| 祁阳县| 陆丰市| 班戈县| 商城县| 聂荣县| 宁陕县| 鹤山市| 吉水县| 蒙山县| 溧水县|