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

對(duì)python過(guò)濾器和lambda函數(shù)的用法詳解

 更新時(shí)間:2019年01月21日 14:14:21   作者:HP的博客  
今天小編就為大家分享一篇對(duì)python過(guò)濾器和lambda函數(shù)的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1. 過(guò)濾器

Python 具有通過(guò)列表解析 將列表映射到其它列表的強(qiáng)大能力。這種能力同過(guò)濾機(jī)制結(jié)合使用,使列表中的有些元素被映射的同時(shí)跳過(guò)另外一些元素。

過(guò)濾列表語(yǔ)法: [ mapping-expression for element in source-list if filter-expression ]

這是列表解析的擴(kuò)展,前三部分都是相同的,最后一部分,以 if開頭的是過(guò)濾器表達(dá)式。過(guò)濾器表達(dá)式可以是返回值為真或者假的任何表達(dá)式 (在 Python 中是幾乎任何東西)。任何經(jīng)過(guò)濾器表達(dá)式演算值為真的元素都可以包含在映射中,其它的元素都將忽略,它們不會(huì)進(jìn)入映射表達(dá)式,更不會(huì)包含在輸出列表中。

列表過(guò)濾介紹

>>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> [elem for elem in li if len(elem) > 1]
['mpilgrim', 'foo']
// 由于 Python 會(huì)遍歷整個(gè)列表,它將對(duì)每個(gè)元素執(zhí)行過(guò)濾器表達(dá)式,如果過(guò)濾器表達(dá)式演算值為真,該元素就會(huì)被映射,同時(shí)映射表達(dá)式的結(jié)果將包含在返回的列表中,這里過(guò)濾掉了所有單字符的字符串,留下了一個(gè)由長(zhǎng)字符串構(gòu)成的列表。

>>> [elem for elem in li if elem != "b"]
['a', 'mpilgrim', 'foo', 'c', 'd', 'd']
// 這里過(guò)濾掉了一個(gè)特定值 b ,注意這個(gè)過(guò)濾器會(huì)過(guò)濾掉所有的 b, 因?yàn)槊看稳〕?b, 過(guò)濾表達(dá)式都將為假。

>>> [elem for elem in li if li.count(elem) == 1]
['a', 'mpilgrim', 'foo', 'c']
// count 是一個(gè)列表方法,返回某個(gè)值在列表中出現(xiàn)的次數(shù),你可以認(rèn)為這個(gè)過(guò)濾器將從列表中刪除重復(fù)元素,返回一個(gè)只包含了在原始列表中有著唯一值拷貝的列表。但并非如此,因?yàn)樵谠剂斜碇谐霈F(xiàn)兩次的值 (在本例中, b 和 d ) 被完全剔除了,從一個(gè)列表中排除重復(fù)值有多種方法,但過(guò)濾并不是其中的一種。

filter 內(nèi)置函數(shù)

Python2.7.13官方文檔中的介紹: filter(function, iterable) Construct a list from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If iterable is a string or a tuple, the result also has that type; otherwise it is always a list. If function is None, the identity function is assumed, that is, all elements of iterable that are false are removed.

Note that filter(function, iterable) is equivalent to [item for item in iterable if function(item)] if function is not None and [item for item in iterable if item] if function is None.

See itertools.ifilter() and itertools.ifilterfalse() for iterator versions of this function, including a variation that filters for elements where the function returns false.

Python內(nèi)建的filter()函數(shù)用于過(guò)濾序列

// 保留長(zhǎng)度大于1的字符串
>>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> def func(s):
... return len(s) > 1

>>> filter(func,li)
['mpilgrim', 'foo']

// 刪除奇數(shù)
>>> def del_odd(n):
... return n % 2 == 0
>>> filter(del_odd,[0,1,2,3,4,5,6,7,8,9])
[0, 2, 4, 6, 8]

2. lambda函數(shù)

Python 支持一種有趣的語(yǔ)法, 它允許你快速定義單行的最小函數(shù), 這些叫做

lambda 的函數(shù), 是從 Lisp 借用來(lái)的, 可以用在任何需要函數(shù)的地方。

>>> def f(x):
... return x*2 
>>> f(3)
6

>>> g = lambda x : x*2
>>> g(3)
6
// 這是一個(gè) lambda 函數(shù),完成同上面普通函數(shù)相同的事情。注意這里的簡(jiǎn)短的語(yǔ)法:在參數(shù)列表周圍沒有括號(hào),而且忽略了 return 關(guān)鍵字 (隱含存在,因?yàn)檎麄€(gè)函數(shù)只有一行)。而且,該函數(shù)沒有函數(shù)名稱,但是可以將它賦值給一個(gè)變量進(jìn)行調(diào)用。

>>> (lambda x : x*2)(3)
6
// 使用 lambda 函數(shù)時(shí)甚至不需要將它賦值給一個(gè)變量。

總的來(lái)說(shuō), lambda 函數(shù)可以接收任意多個(gè)參數(shù) (包括可選參數(shù)) 并且返回單個(gè)表達(dá)式的值。 lambda 函數(shù)不能包含命令, 包含的表達(dá)式不能超過(guò)一個(gè), 不要試圖向 lambda 函數(shù)中塞入太多的東西, 如果你需要更復(fù)雜的東西, 應(yīng)該定義一個(gè)普通函數(shù), 然后想讓它多長(zhǎng)就多長(zhǎng)。

Note: lambda函數(shù) 是可選的, 它是一種風(fēng)格問(wèn)題,不一定非要使用它們,任何能夠使用它們的地方,都可以定義一個(gè)單獨(dú)的普通函數(shù)來(lái)進(jìn)行替換,應(yīng)將它們用在需要封裝特殊的、非重用代碼上,避免代碼充斥著大量單行函數(shù)。

以上這篇對(duì)python過(guò)濾器和lambda函數(shù)的用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python munch庫(kù)的使用解析

    python munch庫(kù)的使用解析

    munch是Bunch包的分支,提供類似的功能。99%的工作都是由他完成的,而前叉的創(chuàng)建主要是因?yàn)閷?duì)原始代碼的修復(fù)和維護(hù)缺乏響應(yīng)能力。Munch是支持屬性樣式訪問(wèn)的字典,本文將講解munch庫(kù)的使用
    2021-05-05
  • CentOS系統(tǒng)上安裝Conda的詳細(xì)指南

    CentOS系統(tǒng)上安裝Conda的詳細(xì)指南

    Conda 是一個(gè)開源的包管理系統(tǒng)和環(huán)境管理系統(tǒng),廣泛應(yīng)用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域,本文將詳細(xì)介紹如何在 CentOS 系統(tǒng)上安裝 Conda吧
    2025-03-03
  • python實(shí)現(xiàn)連連看輔助之圖像識(shí)別延伸

    python實(shí)現(xiàn)連連看輔助之圖像識(shí)別延伸

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)連連看輔助之圖像識(shí)別延伸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python MysqlDb模塊安裝及其使用詳解

    python MysqlDb模塊安裝及其使用詳解

    本篇文章主要介紹了python MysqlDb模塊安裝及其使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • python PyQt5的窗口界面的各種交互邏輯實(shí)現(xiàn)

    python PyQt5的窗口界面的各種交互邏輯實(shí)現(xiàn)

    PyQt5是一個(gè)Python綁定庫(kù),用于Qt C++ GUI框架,它允許開發(fā)者使用Python語(yǔ)言創(chuàng)建跨平臺(tái)的應(yīng)用程序,并利用豐富的Qt圖形用戶界面功能,本文介紹了python中PyQt5窗口界面的各種交互邏輯實(shí)現(xiàn),需要的朋友可以參考下
    2024-07-07
  • Python aiohttp百萬(wàn)并發(fā)極限測(cè)試實(shí)例分析

    Python aiohttp百萬(wàn)并發(fā)極限測(cè)試實(shí)例分析

    這篇文章主要介紹了Python aiohttp百萬(wàn)并發(fā)極限測(cè)試,結(jié)合實(shí)例形式分析了Python異步編程基于aiohttp客戶端高并發(fā)請(qǐng)求的相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python中filter與lambda的結(jié)合使用詳解

    Python中filter與lambda的結(jié)合使用詳解

    今天小編就為大家分享一篇Python中filter與lambda的結(jié)合使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api

    python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例

    python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例

    下面小編就為大家分享一篇python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python實(shí)現(xiàn)求解列表中元素的排列和組合問(wèn)題

    python實(shí)現(xiàn)求解列表中元素的排列和組合問(wèn)題

    本篇文章給大家分享使用python的內(nèi)置模塊實(shí)現(xiàn)求解列表中元素的排列和組合問(wèn)題,具體實(shí)現(xiàn)代碼大家參考下本文
    2018-03-03

最新評(píng)論

翁牛特旗| 江孜县| 灵山县| 岳阳县| 治多县| 肇源县| 武平县| 佛山市| 吉安县| 太康县| 沂源县| 彭水| 轮台县| 兴仁县| 寻乌县| 苏尼特左旗| 积石山| 庆阳市| 四平市| 龙海市| 阿克陶县| 尚义县| 布拖县| 葫芦岛市| 磴口县| 漠河县| 都安| 辉县市| 合山市| 金秀| 泸西县| 上林县| 霍城县| 左云县| 汕头市| 拉萨市| 定襄县| 哈密市| 西乡县| 罗江县| 怀化市|