在Python中使用filter去除列表中值為假及空字符串的例子
在 Python中,認(rèn)為以下值為假:
None # None值
False # False值
0 # 數(shù)值零不管它是int,float還是complex類型
'',(),[] # 任何一個(gè)空的序列
{} # 空的集合
如果一個(gè)列表中含上面值為假的元素,要去除的話,可以使用內(nèi)置函數(shù)的filter默認(rèn)的參數(shù)None。
可以先看下filter內(nèi)置函數(shù)的幫助文檔
>>> help(filter) Help on built-in function filter in module __builtin__: filter(...) filter(function or None, sequence) -> list, tuple, or string Return those items of sequence for which function(item) is true. If function is None, return the items that are true. If sequence is a tuple or string, return the same type, else return a list. >>>
從上面的doc文檔可以看出,第一個(gè)參數(shù)可以為一個(gè)函數(shù),也可以為None.
如果第一個(gè)參數(shù)為函數(shù)
>>> def odd(n): ... return n % 2 == 1 ... >>> filter(odd, range(10)) # 第一個(gè)參數(shù)為一般函數(shù) [1, 3, 5, 7, 9] >>> >>> filter(lambda x: x % 2 == 0, range(10)) # 第一個(gè)參數(shù)為匿名函數(shù) [0, 2, 4, 6, 8]
如果第一個(gè)參數(shù)為None的話,則默認(rèn)會(huì)去除序列中所有值為假的元素
>>> L = [1,'',0,'A',None,[1,2],False,3.14,[],{'a':1}, {}] >>> filter(None, L) [1, 'A', [1, 2], 3.14, {'a': 1}] >>>
如果復(fù)雜一點(diǎn),要過(guò)濾列表的False的值過(guò)濾點(diǎn),再將" "文件填充為"default",可以這樣:
>>> L = [[], 1, "", None, False, {}, 3.14, " "] >>> map(lambda x:x if x != " " else "default", filter(None, L)) [1, 3.14, 'default']
如果再?gòu)?fù)雜一點(diǎn),即要去除值為假的元素,而且要去除諸如:' ', " "等多個(gè)空字符的元素,上面的就不行了。這個(gè)時(shí)候就必須做下處理,增加一個(gè)函數(shù)來(lái)處理內(nèi)含一個(gè)或多個(gè)空字符的元素:
>>> L = [1,'',0,'A'," ", None,[1,2],False,3.14,[],{'a':1}, {}] >>> filter(lambda s: s and (type(s) != str or len(s.strip()) > 0), L) [1, 'A', [1, 2], 3.14, {'a': 1}] >>>
以上這篇在Python中使用filter去除列表中值為假及空字符串的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mac 安裝 Python3.10 和 配置環(huán)境的詳細(xì)教程
這篇文章主要介紹了Mac 安裝 Python3.10 和 配置環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類型,如str轉(zhuǎn)float的實(shí)現(xiàn)
今天小編就為大家分享一篇Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類型,如str轉(zhuǎn)float的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10Python標(biāo)準(zhǔn)庫(kù)sched模塊使用指南
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)sched模塊使用的相關(guān)資料,需要的朋友可以參考下2017-07-07Python OpenCV讀取視頻報(bào)錯(cuò)的問(wèn)題解決
大家好,本篇文章主要講的是Python OpenCV讀取視頻報(bào)錯(cuò)的問(wèn)題解決,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01