from collections import Iterable

def flatten(items):
for x in items:
if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
yield from flatten(x)
else:
yield x
"""

    >>> items = [1, 2, [3, 4, [5, 6], 7], 8]
>>> flatten(items)
<generator object flatten at 0x73bd9c>
>>> list(flatten(items))
[1, 2, 3, 4, 5, 6, 7, 8]
>>> mixed_bag = [1, 'spam', 2, [3, 'eggs', 4], {'x': 1, 'y': 2}]
>>> list(flatten(mixed_bag))
[1, 'spam', 2, 3, 'eggs', 4, 'y', 'x']
"""

最新文章

  1. “You couldn’t see my tears cause I am in the water.“ Fish said to water.“But I could feel your tears cause you are in my heart..“ Answered water.
  2. J2EE版本
  3. gui2
  4. Oracle 11g Express
  5. 期望DP
  6. nginx完美支持yii2框架
  7. java 中 java.lang.ArrayIndexOutOfBoundsException: 0 异常
  8. iss 防火墙
  9. 【 HDU 1255】 覆盖的面积(矩阵面积交,线段树,扫描法)
  10. 用特殊字体来实现矢量ICON
  11. jquery中常用的方法和注意点
  12. python_开发规范
  13. alpha-咸鱼冲刺day2-紫仪
  14. 去除input默认带的上下按钮与修改placeholder的默认颜色、背景、placeholder内容的大小
  15. $ORACLE_HOME/rdbms/demo示例安装
  16. virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法
  17. RAC6——crsctl 和 srvctl 命令的区别理解
  18. 大神真会玩~这组C4D动图,我都看了一整天!
  19. (转) 打开声音设备需要使用waveOutOpen函数
  20. 在 Linux 系统中安装Load Generator ,并在windows 调用

热门文章

  1. Linux学习系列——零基础开始
  2. Logback configuration
  3. (转)一个故事讲完https
  4. 编写高质量代码改善C#程序的157个建议——建议136:优先使用后缀表示已有类型的新版本
  5. 编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例
  6. 关于linq to sql调用存储过程,出现&quot;无法枚举查询结果多次&quot;的问题
  7. HBASE与hive对比使用以及HBASE常用shell操作。与sqoop的集成
  8. mysql复制表以及复制数据库
  9. Jenkins Pipeline+Maven+Gitlab持续集成构建
  10. 「SHOI2016」黑暗前的幻想乡