Python: itertools.compress()
2024-10-01 02:14:45
定义:
itertools.compress()
输入:
iterable对象
相应的Boolean选择器序列
输出:
iterable对象中对应选择器为True的元素
用途:
当需要用另外一个相关联的序列来过滤某个序列的时候,这个函数非常有用
eg:
两个列表如下,其元素相对应,现请根据count输出address,条件只输出count大于5的对应地址:
addresses = [
'5412 N CLARK',
'5148 N CLARK',
'5800 E 58TH',
'2122 N CLARK'
'5645 N RAVENSWOOD',
'1060 W ADDISON',
'4801 N BROADWAY',
'1039 W GRANVILLE',
]
counts = [ 0, 3, 10, 4, 1, 7, 6, 1]
现在想将那些对应count 值大于5 的地址全部输出,可以这样做:
>>> from itertools import compress
>>> more5 = [n > 5 for n in counts]
>>> more5
[False, False, True, False, False, True, True, False]
>>> list(compress(addresses, more5))
['5800 E 58TH', '4801 N BROADWAY', '1039 W GRANVILLE']
这里的关键点在于先创建一个booleam序列,指示出哪些元素符合条件,然后compress()根据这个序列去选择输出对应位置为True的元素。
compress()返回的是一个迭代器,如果想得到一个列表,需要用list转换
最新文章
- p6 备忘录
- 用javascript写Android和iOS naitve应用,实在炫酷。
- Java单例模式——并非看起来那么简单
- [Android Tips] 16. Update Android SDK from command-line
- 拼音 名字 排序 a-z的比较 ( sortUsingComparator )
- hadoop创建两大错误:Bad connection to FS. command aborted. exception和Shutting down NameNod...
- 多线程异步加载图片async_pictures
- (4)FTP服务器下载文件
- 如何配置SSH Keys登录
- 在Ajax中将数组转换成字符串(0517-am)
- HTML里为什么不能在<;p>;标签中嵌套<;div>;标签
- javaWeb学习总结(10)- Filter(过滤器)常见应用(3)
- zoj1002 Fire Net
- 前端笔记---塌陷top
- SPI知识总结
- css 实现加载中3个点跳动
- live Templates 活动模板. 配置完之后,就可以快速编码-代码块
- 如何在Promise链中共享变量?
- Linux 小知识翻译 - 「UTC 和 JST」
- es6 let和const