转载https://www.cnblogs.com/wushaogui/p/9241931.html

1.定义减层方法

import functools
import itertools
import numpy
import operator
import perfplot
from collections import Iterable  # or from collections.abc import Iterable
from iteration_utilities import deepflatten #使用两次for循环
def forfor(a): return [item for sublist in a for item in sublist] #通过sum
def sum_brackets(a): return sum(a, []) #使用functools內建模块
def functools_reduce(a): return functools.reduce(operator.concat, a) #使用itertools內建模块
def itertools_chain(a): return list(itertools.chain.from_iterable(a)) #使用numpy
def numpy_flat(a): return list(numpy.array(a).flat) #使用numpy
def numpy_concatenate(a): return list(numpy.concatenate(a)) #自定义函数
def flatten(items): """Yield items from any nested iterable; see REF.""" for x in items: if isinstance(x, Iterable) and not isinstance(x, (str, bytes)): yield from flatten(x) else: yield x def pylangs_flatten(a): return list(flatten(a)) #使用库iteration_utilities
def iteration_utilities_deepflatten(a): return list(deepflatten(a, depth=1))

2.测试

a=[[1,2,3],[4,5,6],[7,8,9]]
print(a) print('--------------------------') print(forfor(a))
print(sum_brackets(a))
print(functools_reduce(a))
print(itertools_chain(a))
print(numpy_flat(a))
print(numpy_concatenate(a))
print(pylangs_flatten(a))
print(iteration_utilities_deepflatten(a))

输出:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
--------------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Python中多层List展平为一层相关推荐

  1. python学习笔记之-展平函数ravel和flatten及两者的区别

    ravel()和flatten()是将多维数据展平为一维数据,功能相同,区别在于一个是引用操作,一个是复制操作.ravel()展平数据后,修改后面的数据会影响前面的数据,而flatten()展平数据后 ...

  2. python中多层装饰器使用步骤

  3. Python中的 List

    关于List: 最最最基本操作 其他操作上的问题 一.如何判断 list 重复 二.根据 list 里面的每一个 list 的第一个元素排序 三. 一个 list 给另一个 list 赋值 四.lis ...

  4. python嵌套列表操作方法_python中多层嵌套列表的拆分方法

    场景:有一个多层嵌套的列表如:[[23],[3,3],[22,22],1,123,[[123,a],2]] 拆分成: def splitlist(list): ''' 现有一个列表,里面元素包括 数字 ...

  5. Python数据处理Tips多层嵌套Json数据展平到DataFrame

    在工作中需要处理嵌套数据(尤其是无模式的 MongoDB 日志等)或者是网络爬虫抓取下来的多层嵌套数据需要展平处理. 如果将它放在 BigQuery 中则很容易通过使用 WITHIN 等的查询将其更改 ...

  6. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记6:第三章 常用函数2——中位数、方差、日期、展平

    本章将介绍NumPy的常用函数.具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.这里还将学习读写文件的方法,并尝试函数式编程和NumPy线 ...

  7. Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集

    Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录

  8. 在python中,用正则表达式提取多层括号中最外层括号包含的内容

    提取多层括号中最外层括号包含的内容有几种方式,那么用正则表达式该怎么实现呢? 在python中,用正则表达式提取多层括号中最外层括号包含的内容 比如有一个字符串 : 学习python中有什么不懂的地方 ...

  9. python从多层循环嵌套中退出_python中退出多层循环的方法

    1.定义标记变量:利用变量值的变化退出循环 # 第一种嵌套形式 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]] # init_i = 0 # init_j = 0 flag ...

最新文章

  1. 太牛逼了!项目中用了Disruptor之后,性能提升了2.5倍
  2. 在Linux终端下查看GPU正常使用的情况
  3. matlab数学实验 胡良剑,matlab数学实验习题全部答案(胡良剑)
  4. Linux下如何释放内存
  5. php mail 失败,php-mail()失败,但返回true
  6. VC++设计简易计算器笔记(一)
  7. networkx 点的属性_在NetworkX中分配节点属性时发生类型错误
  8. 分布式代码管理系统Git实践
  9. WPF教程尝试(修正部分格式)
  10. 腾讯云短信功能初步使用
  11. 利用python脚本根据DOI号自动查询参考文献信息
  12. 三种修改windows系统MAC地址方法
  13. 我为账户和推广计划指定了不同的推广地域,以哪一个为准?
  14. 一套WPF+EF+SQLServer 会员卡管理系统源码
  15. sqlserver 根据旧表创建新表
  16. Java基础学习系列--(二)【抽象类,接口、代码块、final、单例、枚举】
  17. 2016计蒜之道初赛第一场----A青云的服务器密钥【贪心】
  18. 发票扫描仪的正确打开方式
  19. 华三服务器怎样用hdm安装linux,H3C服务器配置HDM用户指南
  20. Stata:面板数据,一般加上个体固定效应和时间固定效应

热门文章

  1. 记录低频的混沌电压波形-双晶体管混沌信号
  2. 讯飞智慧餐厅(全国赛区)比赛通知
  3. 通过示波器数据进行正弦信号参数估计
  4. 举行可衡量自动行驶车未来发展的“智能模型车竞赛大会” 2018
  5. tdk磁材手册_TDK的铁氧体磁铁(FB系列) - TDK Product Center.PDF
  6. python中pos的用法_Python正则式的基本用法
  7. 初级脚本Ubuntu18-20.04版本以上设置静态IP地址
  8. 中考考试的指令广播_明天FM105.2《朝朝早精神好》推出2017广州中考日特别报道...
  9. java 矩阵_(JAVA)计算机图形学与矩阵
  10. 流 java_java8——使用流