`

Python过滤列表

阅读更多

过滤列表语法:
[mapping-expression for element in source-list if filter-expression]
methodList = [method for method in dir(object) if callable(getattr(object, method))]

 

这是你所知所爱的 列表解析 的扩展。前三部分都是相同的;最后一部分,以 if 开头的是过滤器表达式。过滤器表达式可以是返回值为真或者假(在 Python 中是 几乎任何东西)的任何表达式。任何经过滤器表达式演算值为元素的真都可以包含在映射中。其它的元素都将忽略,它们不会进入映射表达式,更不会包含在输出列表中。

 

>>>li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>>[elem for elem in li if len(elem) > 1]       
['mpilgrim', 'foo']
>>>[elem for elem in li if elem != "b"]         
['a', 'mpilgrim', 'foo', 'c', 'd', 'd']
>>>[elem for elem in li if li.count(elem) == 1] 
['a', 'mpilgrim', 'foo', 'c']

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics