定义:

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转换

最新文章

  1. p6 备忘录
  2. 用javascript写Android和iOS naitve应用,实在炫酷。
  3. Java单例模式——并非看起来那么简单
  4. [Android Tips] 16. Update Android SDK from command-line
  5. 拼音 名字 排序 a-z的比较 ( sortUsingComparator )
  6. hadoop创建两大错误:Bad connection to FS. command aborted. exception和Shutting down NameNod...
  7. 多线程异步加载图片async_pictures
  8. (4)FTP服务器下载文件
  9. 如何配置SSH Keys登录
  10. 在Ajax中将数组转换成字符串(0517-am)
  11. HTML里为什么不能在<p>标签中嵌套<div>标签
  12. javaWeb学习总结(10)- Filter(过滤器)常见应用(3)
  13. zoj1002 Fire Net
  14. 前端笔记---塌陷top
  15. SPI知识总结
  16. css 实现加载中3个点跳动
  17. live Templates 活动模板. 配置完之后,就可以快速编码-代码块
  18. 如何在Promise链中共享变量?
  19. Linux 小知识翻译 - 「UTC 和 JST」
  20. es6 let和const

热门文章

  1. Unity3D笔记 英保通三 脚本编写 、物体间通信
  2. echarts饼图如何设置悬浮提示框在中间显示?
  3. ABP之应用服务(2)
  4. OpenCV学习笔记之CXCORE篇
  5. HDU 1711 - Number Sequence - [KMP模板题]
  6. 启用yarn日志聚集功能
  7. a loosely strongly typed language
  8. 虚拟机linux centoros系统安装
  9. Dungeon Master---2251(bfs)
  10. 【PyQt5-Qt Designer】QComboBox(下拉列表框) 使用模板