|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码 |
|