国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

經(jīng)驗(yàn)拾憶(純手工)=> Python高階函數(shù)操作

Elle / 836人閱讀

摘要:解釋就相當(dāng)于把每個(gè)序列元素的每一個(gè)多帶帶用一個(gè)管道函數(shù)處理,再把他們按順序組合成一個(gè)新可迭代對(duì)象注意這個(gè)管道函數(shù)只能是單參數(shù)函數(shù),如果想傳遞多個(gè)參數(shù)怎么辦使用偏函數(shù)怕有些人看不懂,這里就不用了,而是用普通函數(shù)定義方式固定值固定值固定值固定值固

map
In [25]: list(map(lambda a:a**2, [1,2,3,4]))
Out[25]: [1, 4, 9, 16]
解釋:map就相當(dāng)于 把每個(gè)序列元素 的每一個(gè) 多帶帶用一個(gè)管道函數(shù)處理,
     再把他們按順序組合成一個(gè)新可迭代對(duì)象
注意:這個(gè)管道函數(shù) 只能是單參數(shù)函數(shù),如果想傳遞多個(gè)參數(shù)怎么辦???
    1. 使用偏函數(shù) paitial (怕有些人看不懂,這里就不用lambda了,而是用普通函數(shù)定義方式)
        In [58]: def f(a,b):
            ...:     return a**2,b
        In [59]: f = partial(f,b="固定值")
        In [60]: list(map(f,[1,2,3,4]))
        Out[60]: [(1, "固定值"), (4, "固定值"), (9, "固定值"), (16, "固定值")]
        
       當(dāng)然還是提供一下lambda的方式吧,看看有多簡(jiǎn)潔。
        In [64]: list(map(partial(lambda a,b:(a**2,b),b="固定值") ,[1,2,3,4]))
        Out[64]: [(1, "固定值"), (4, "固定值"), (9, "固定值"), (16, "固定值")]
        
    2. 如果想對(duì)map傳遞多個(gè)參數(shù),除了上面用偏函數(shù),還可以使用下面介紹的starmap  
      
map多參應(yīng)用場(chǎng)景:進(jìn)程池的imap (以后我也會(huì)寫Python三器三程的文章)
starmap
In [30]: list(starmap(lambda a,b:a+b,( (1,2),(3,4))))
Out[30]: [3, 7]
解釋一下:
    starmap 和 partial雖然都可以解決 map傳多參,但還是有一些區(qū)別的
    starmap的 每一對(duì)的多個(gè)參數(shù) 都是密切相關(guān)的
    partial的 偏參數(shù) 是和所有 主參數(shù) 全部相關(guān)的
    
reduce
In [87]: from functools import reduce
In [88]: reduce(lambda a,b:a*b, [1,2,3,4])
Out[88]: 24
解釋一下:reduce 相當(dāng)于對(duì)一個(gè)序列"累"的操作 (累加、累乘等),返回結(jié)果就是累值
filter
In [100]: list(filter(lambda a:a if a>2 else None, [1,2,3,4]))
Out[100]: [3, 4]
解釋一下:和map思想一樣,根據(jù)條件過(guò)濾序列。
sorted
In [128]: dict1 = {"學(xué)號(hào)2":"1","學(xué)號(hào)1":"2"}
In [129]: sorted(dict1.items(),key=lambda x:x[1])
Out[129]: [("學(xué)號(hào)2", "1"), ("學(xué)號(hào)1", "2")]
解釋一下:和list的sort函數(shù)類似,  但這個(gè)sorted的優(yōu)點(diǎn)是針可以對(duì)所有序列排序
zip
In [132]: list(zip((1,2),(3,4,5)))
Out[132]: [(1, 3), (2, 4)]
解釋一下:每個(gè)子序列對(duì)應(yīng)位置進(jìn)行組合, 如果格式不匹配,則會(huì)舍棄不匹配的那一項(xiàng)
三目運(yùn)算
三目運(yùn)算符可以使代碼簡(jiǎn)介邏輯清晰(雖然 or and 也是可以使代碼邏輯簡(jiǎn)潔,但有些燒腦,我?guī)缀醪挥脋~)
In [78]: print(1 if 0==0 else 2)
Out[78]: 1  
推導(dǎo)式
其實(shí)有時(shí)用推導(dǎo)式也可以代替部分高階操作,并且推導(dǎo)式的效率也高
1. 列表推導(dǎo)式
    In [77]: [1 for _ in range(5) if 1==1]
    Out[77]: [1, 1, 1, 1, 1]

2. 集合推導(dǎo)式
    In [6]: {x for x in [1,2,1,2]}
    Out[6]: {1, 2}

3. 字典推導(dǎo)式
    In [18]: {value:key for key,value in {"name":"tom"}.items()}
    Out[18]: {"tom": "name"}

4. 生成器 (生成器還有另外的方式,后面還會(huì)三程三器)
    In [23]: (x for x in range(10))
    Out[23]:  at 0x0000024A4CFA8BA0>
    
    





文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/43835.html

相關(guān)文章

  • 經(jīng)驗(yàn)拾憶手工)=> Python基本數(shù)據(jù)類型

    摘要:不要疑惑,告訴你答案這個(gè)代表正負(fù)號(hào)的正。雖然一點(diǎn)技術(shù)含量沒(méi)有,但是你要懂序列也許叫可迭代對(duì)象更為合適,但是我喜歡叫序列。 數(shù)據(jù)結(jié)構(gòu) 可變類型與不可變類型(重頭戲) 基操: 可變類型:[], {} # 可增刪改 查 不可變類型: int float str () # 無(wú)法增刪改, 只可查 升操: + 與...

    Andrman 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶手工)=> Python三程

    摘要:多線程對(duì)于爬蟲方面也可以表現(xiàn)出較好的性能。計(jì)算密集型就別想多線程了,一律多進(jìn)程。所以同一時(shí)刻最大的并行線程數(shù)進(jìn)程數(shù)的核數(shù)這條我的個(gè)人理解很模糊,參考吧多線程多線程有種通過(guò)的那種方式,非常普遍,此處就不寫了。 GIL的理解 GIL這個(gè)話題至今也是個(gè)爭(zhēng)議較多的,對(duì)于不用應(yīng)用場(chǎng)景對(duì)線程的需求也就不同,說(shuō)下我聽(tīng)過(guò)的優(yōu)點(diǎn): 1. 我沒(méi)有用過(guò)其他語(yǔ)言的多線程,所以無(wú)法比較什么,但是對(duì)于I/O而言,...

    Snailclimb 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶手工)=> Python好用深度技能工具介紹

    摘要:?jiǎn)卧卦孢@是整數(shù)這才是元祖也許這兩行,你們當(dāng)時(shí)疑惑過(guò),并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。雖然我水平很垃圾,但是我知道匿名函數(shù)有一種執(zhí)行方式叫做自執(zhí)行。看吧,這就是版的匿名函數(shù)自執(zhí)行方法。 單元素元祖: a = (1) # 這是整數(shù)1 a = (1,) # 這才是元祖 也許這兩行,你們當(dāng)時(shí)疑惑過(guò),并且現(xiàn)在也都知道了,當(dāng)然重點(diǎn)并不在這里。。 我無(wú)聊的時(shí)候想過(guò),為什么單...

    UnixAgain 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶手工)=> Python__黑魔法__

    摘要:類的繼承類繼承有三種調(diào)用方式,其實(shí)是有區(qū)別的,聽(tīng)我慢慢道來(lái)第一種父類方法參數(shù)直接調(diào)用第二種方法參數(shù)直接調(diào)用在誰(shuí)的類下調(diào)用,就找此類對(duì)應(yīng)的下一個(gè)就是要繼承的第三種方法參數(shù)找類名對(duì)應(yīng)的的下一個(gè),就是繼承的,一般寫本身的類名上下文管理器上下文管理 類的繼承 類繼承有三種調(diào)用方式,其實(shí)是 有區(qū)別 的,聽(tīng)我慢慢道來(lái) class A: def say(self, name): ...

    tulayang 評(píng)論0 收藏0
  • 經(jīng)驗(yàn)拾憶手工)=> Python三器

    摘要:也就是給原函數(shù)加個(gè)外殼。類裝飾填充了啊我是原函數(shù)類裝飾填充了啊我是原函數(shù)說(shuō)明后面關(guān)于類的裝飾器如果理解困難當(dāng)做了解即可,用的也少。 可迭代對(duì)象、生成器、迭代器三者的關(guān)系 1. 迭代器一定是可迭代對(duì)象 2. 生成器是迭代器的一種 3. 可迭代對(duì)象:必須實(shí)現(xiàn) __iter__方法 4. 迭代器:必須實(shí)現(xiàn) __iter__方法 和 __next__ 方法 5. 生成器:必須實(shí)現(xiàn) __it...

    Miracle_lihb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<