马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一个账号 于 2020-3-13 22:49 编辑
Python filter() 函数
语法
filter(function, iterable)
参数
参数 | 描述 | function | 筛选函数,如果没有写 None(没有也要写) | start | 可迭代对象 |
返回值
返回一个迭代器对象。
例子
没有筛选函数:
>>> filter(None, [1, 2, 0, "", [], (1, 2)])
<filter object at 0x000002952FAD1160>
>>> list(filter(None, [1, 2, 0, "", [], (1, 2)]))
[1, 2, (1, 2)]
有筛选函数,保留偶数:
>>> def is_odd(num):
return num % 2 == 1
>>> list(filter(is_odd, [i for i in range(20)]))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
保留没有空格的字符串:
>>> def func(s):
return s.replace(" ", "") == s
>>> for i in filter(func, ["hello", " a bc", "abc d", "", "21 ", "d33s", "56"]):
print(f"这个字符串没有空格:{i}")
这个字符串没有空格:hello
这个字符串没有空格:
这个字符串没有空格:d33s
这个字符串没有空格:56
还可以使用 lambda,一行搞定:
>>> list(filter(lambda num : num % 2 == 1, [i for i in range(20)]))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> for i in filter(lambda s : s.replace(" ", "") == s, ["hello", " a bc", "abc d", "", "21 ", "d33s", "56"]): print(f"这个字符串没有空格:{i}")
这个字符串没有空格:hello
这个字符串没有空格:
这个字符串没有空格:d33s
这个字符串没有空格:56
|