<Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
来源:互联网 发布:another mysql daemon 编辑:程序博客网 时间:2024/06/15 07:39
展开嵌套列表算法是一个常考点,既是基础,但是要写好也不简单,我见过很多个版本,老手和新手之间的差别简直堪比云泥。接下来分享一个高效又巧妙的版本,代码也很短。
废话不多说直接上代码:
def flatten(obj, ignore_itmes=(str, bytes)): for item in obj: if isinstance(item, Iterable) and not isinstance(item, ignore_itmes): yield from flatten(item) else: yield item
使用yield
构建生成器可以有很好的性能,ignore_items
当中可以自定义不想被当做迭代对象的类型集合,最巧妙的点在于yield from
递归调用自身这个生成器。
可以说是性能/空间的利用率都相当高,代码没几行但是充分体现了Python
的精炼美。
阅读全文
0 0
- <Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
- Python递归展开嵌套的list
- python(list,tuple,dict,set)
- Python中的列表(list),元组(Tuple),字典(Dict)和集合(Set)
- python list tuple dict set
- Python list,Dict和Set
- Python--list,tuple,dict,set.
- PYTHON内置数据类型( list ,tuple ,dict,set)
- Python入门笔记(3)_ List, Tuple, Dict, Set
- python的TypeError: unhashable type(list/set/dict)问题
- Python 列表(list)改成字典(dict)
- python之列表(list),元组(tuple),集合(set),字典(dict)
- python的列表(List),元组(Tuple),集合(Set),字典(Dict)
- python 列表list 元组tuple 字典dict 集合set 介绍
- 【Python】基础学习——列表(list),元祖(tuple),字典(dict),字符串(string),集合(set)
- Python中的列表(list),元组(tuple),集合(set),字典(dict)
- Python学习笔记(9)-列表list、元组tuple、字典dict、集合set
- python 列表list 元组tuple 字典dict 集合set 介绍
- [NOIP模拟] 拆网线 树形DP
- 【DSP】TMS320F28335 扩展SRAM
- Android studio操作
- 对VUE项目实现的理解
- day23
- <Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
- sql命令笔记
- 利用Maxwell组件实时监听Mysql的binlog日志,并且把解析的json格式数据发送到kafka窗口供实时消费
- Spring 源码导入Eclipse
- day24
- 【poj 3061】尺取法
- AngularJS(一)环境搭建
- [2017.10.23]作业04
- day25