Python代码阅读(第58篇):压缩列表
2021-10-18 本文已影响0人
FelixZzzz
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码实现了去除列表中的“假值”的功能。
本篇阅读的代码片段来自于30-seconds-of-python。
compact
def compact(lst):
return list(filter(None, lst))
# EXAMPLES
print(compact([0, 1, False, 2, '', 3, 'a', 's', 34])) # [ 1, 2, 3, 'a', 's', 34 ]
compact
函数接收一个列表,返回去除“假值”之后的列表。
函数使用filter
函数返回一个新的迭代器,再使用list
函数生成新的列表。
filter(function, iterable)
函数用iterable
中函数function
返回真的那些元素,构建一个新的迭代器。iterable
可以是一个序列,一个支持迭代的容器,或一个迭代器。如果function
是None
,则会假设它是一个身份函数,即iterable
中所有返回假的元素会被移除。也就是如下的生成器表达式。
(item for item in iterable if item)