您好,登錄后才能下訂單哦!
這篇文章主要講解了Python中使用filter過濾列表的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
有的時候使用dir(Module),可以查看里面的方法,但是模塊自帶的屬性"__"開頭的也會顯示,如下:
>>> import random >>> dir(random) ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_Buil tinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_acos', '_c eil', '_cos', '_e', '_exp', '_hashlib', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_ generator', '_urandom', '_warn', 'betavariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbi ts', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sam ple', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] >>>
這個時候想過濾以"_"或"__"開頭的方法,可以:
>>> filter(lambda s: not s.startswith("_"), dir(random)) ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', 'betav ariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormv ariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 't riangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] >>>
從上面來看,使用filter()函數,結合lambda函數很好的完成了任務。 其他的例子,比如想從一個列表中過濾非數字的字符串列表:
>>> L = ["1234", "ABCD", "BOOK"] >>> filter(lambda s: s.isdigit(), L) ['1234'] >>>
補充知識:python不同長度列表,對應合并
1. 說明
lis1 = [{‘OS_bit': u'64 \u4f4d', ‘OS_version': ‘10.0.10240', ‘OS_name': u'Microsoft Windows 10 \u4f01\u4e1a\u7248 2015 \u957f\u671f\u670d\u52a1\u65b9\u6848'}] lis2 = [{‘ip':‘10.20.122.32'}] lis3 = [{‘CPU_name': u'Intel® Core™ i5-4200H CPU @ 2.80GHz'}] lis4 = [{‘memory_size': ‘1600MHz', ‘memory_name': u'Physical Memory 0'}, {‘memory_size': ‘1600MHz', ‘memory_name': u'Physical Memory 2'}] lis5 = [{‘GPU_name': u'NVIDIA GeForce GTX 950M', ‘GPU_size': ‘2G'}, {‘GPU_name': u'Intel® HD Graphics 4600', ‘GPU_size': ‘1G'}]
有這五個列表,要求合并成一個列表,并且所有列表的第一元素放在新列表的第一元素,以此類推。
2. 代碼
# !/usr/bin/env/python # _*_coding:utf-8_*_ # Data:2019-04-10 # Auther:蘇莫 # Link:QQ2388873062 # Address:https://blog.csdn.net/lingluofengzang # PythonVersion:python2.7 import sys reload(sys) sys.setdefaultencoding('utf-8') lis1 = [{'OS_bit': u'64 \u4f4d', 'OS_version': '10.0.10240', 'OS_name': u'Microsoft Windows 10 \u4f01\u4e1a\u7248 2015 \u957f\u671f\u670d\u52a1\u65b9\u6848'}] lis2 = [{'ip':'10.20.122.32'}] lis3 = [{'CPU_name': u'Intel(R) Core(TM) i5-4200H CPU @ 2.80GHz'}] lis4 = [{'memory_size': '1600MHz', 'memory_name': u'Physical Memory 0'}, {'memory_size': '1600MHz', 'memory_name': u'Physical Memory 2'}] lis5 = [{'GPU_name': u'NVIDIA GeForce GTX 950M', 'GPU_size': '2G'}, {'GPU_name': u'Intel(R) HD Graphics 4600', 'GPU_size': '1G'}] is_all = [lis1,lis2,lis3,lis4,lis5] #l print lis_all new_lis = [] for j in range(2): lis = {} for i in range(len(lis_all)): try: lis = dict(lis, **lis_all[i][j]) except Exception as e: pass # else: new_lis.append(lis) print new_lis
3.結果
看完上述內容,是不是對Python中使用filter過濾列表的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。