Python中flatten用法

Posted 吃饭了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中flatten用法相关的知识,希望对你有一定的参考价值。

Python中flatten用法

原创 2014年04月16日 10:20:02

一、用在数组

 

[python] view plain copy
 
  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a = array(a)  
  3. >>> a.flatten()  
  4. array([1, 3, 2, 4, 3, 5])  

 

二、用在列表

 

如果直接用flatten函数会出错

 

[python] view plain copy
 
  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a.flatten()  
  3.   
  4. Traceback (most recent call last):  
  5.   File "<pyshell#10>", line 1, in <module>  
  6.     a.flatten()  
  7. AttributeError: ‘list‘ object has no attribute ‘flatten‘  

正确的用法

 

 

[python] view plain copy
 
  1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
  2. >>> a1 = [y for x in a for y in x]  
  3. >>> a1  
  4. [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]  

或者(不理解)

 

 

[python] view plain copy
 
  1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
  2. >>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]  
  3. >>> flatten(a)  
  4. [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]  

 

三、用在矩阵

[python] view plain copy
 
  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a = mat(a)  
  3. >>> y = a.flatten()  
  4. >>> y  
  5. matrix([[1, 3, 2, 4, 3, 5]])  
  6. >>> y = a.flatten().A  
  7. >>> y  
  8. array([[1, 3, 2, 4, 3, 5]])  
  9. >>> shape(y)  
  10. (1, 6)  
  11. >>> shape(y[0])  
  12. (6,)  
  13. >>> y = a.flatten().A[0]  
  14. >>> y  
  15. array([1, 3, 2, 4, 3, 5])  




以上是关于Python中flatten用法的主要内容,如果未能解决你的问题,请参考以下文章

每日一包0005arr-flatten

python Flatten Heirarchical指数

114 Flatten Binary Tree to Linked List [Python]

python to flatten dhrp / sshd:sudo python flatten.py 2bbfe079a94259b229ae66962d9d06b97fcdce7a5449775

Python 3 替换已弃用的 compiler.ast flatten 函数

Python Flatten 用 Pandas 将嵌套字典 JSON 相乘