在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),要過濾列表的False的值過濾點(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)文章
python實(shí)時(shí)獲取外部程序輸出結(jié)果的方法
今天小編就為大家分享一篇python實(shí)時(shí)獲取外部程序輸出結(jié)果的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-01-01
Python requests獲取網(wǎng)頁(yè)常用方法解析
這篇文章主要介紹了Python requests獲取網(wǎng)頁(yè)常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法
這篇文章主要介紹了Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法,涉及Python針對(duì)文件與目錄的遍歷、復(fù)制等相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
python統(tǒng)計(jì)函數(shù)被調(diào)用次數(shù)的實(shí)現(xiàn)
本文主要介紹了python如何統(tǒng)計(jì)函數(shù)被調(diào)用次數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python2和Python3中@abstractmethod使用方法
這篇文章主要介紹了Python2和Python3中@abstractmethod使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

