004_006 Python 展开嵌套序列 序列的子序列进行展开
来源:互联网 发布:plc用什么软件编程 编辑:程序博客网 时间:2024/06/18 18:54
代码如下:
#encoding=utf-8print '中国'#展开嵌套序列 序列的子序列进行展开print '----递归'def list_or_tuple(x): return isinstance(x,(list,tuple))def flatten(sequence, to_expand=list_or_tuple): for item in sequence: if to_expand(item): for subitem in flatten(item,to_expand): yield subitem else: yield item lista=[[1,2,[3,4,[5,6]]],7,8,(9,10,(11,12))]for idx,item in enumerate(flatten(lista)): print idx,item print '----非递归 链表'def flatten2(sequence, to_expand=list_or_tuple): iterators = [ iter(sequence) ] while iterators: for item in iterators[-1]: if to_expand(item): iterators.append(iter(item)) break else: yield item else: iterators.pop( )for idx,item in enumerate(flatten2(lista)): print idx,item打印结果如下:
中国
----递归
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
----非递归 链表
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
0 0
- 004_006 Python 展开嵌套序列 序列的子序列进行展开
- 最长递增子序列(LIS)-总结与相关展开
- 排列序列 (康托展开)
- python使用嵌套序列
- Python递归展开嵌套的list
- 矩形嵌套的单调递增子序列解决
- 子序列的和
- 子序列的个数
- 最长的子序列
- 子序列的个数
- 子序列的个数
- 子序列的个数
- 子序列的和
- 子序列的和
- 不同的子序列
- 不同的子序列
- 子序列的和
- 共同的子序列
- 迭代JSON
- WinSCP上传文件乱码
- ubuntu12.04.4下方向键在python命令行只打印字符不起作用的问题
- Class文件格式总结
- JQuery常用选择器总结
- 004_006 Python 展开嵌套序列 序列的子序列进行展开
- 【C++】计算struct结构体占用的长度
- java_spring_实例化bean的3种方法
- (排bug)CTex+TeXstudio中文乱码问题
- 鸽巢原理(入门) 之 poj 2356
- 推导正交投影变换
- 深入探索透视投影变换
- 深入探索透视投影变换(续)
- 推导相机变换矩阵