一.需求

原格式:

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

目标格式:

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

二.方法

1.sum函数合并

input=[[1,2,3],[4,5,6],[7,8,9]]
output=sum(input,[])
print(output)#结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

这个看上去很简洁,不过有类似字符串累加的性能陷阱。

2.reduce函数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from functools import reduceinput=[[1,2,3],[4,5,6],[7,8,9]]
output=reduce(list.__add__, input)
print(output)#结果[1, 2, 3, 4, 5, 6, 7, 8, 9]

做序列的累加操作。也是有累加的性能陷阱。

3.列表推导式

input=[[1,2,3],[4,5,6],[7,8,9]]
output=[item for sublist in input for item in sublist]
print(output)#结果
[1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推导式,看着有些长,而且还要for循环两次,变成一行理解需要费劲一些,没有那么直观
  
4.itertools 类库

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import itertools
input=[[1,2,3],[4,5,6],[7,8,9]]
ouput=list(itertools.chain(*input))
print(ouput)#结果
[1, 2, 3, 4, 5, 6, 7, 8, 9]

三.性能对比

python -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' '[item for sublist in l for item in sublist]'
10000 loops, best of 3: 51.2 usec per looppython -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' 'reduce(list.__add__,l)'
1000 loops, best of 3: 572 usec per looppython -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' 'sum(l, [])'
1000 loops, best of 3: 545 usec per looppython -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99; import itertools;' 'list(itertools.chain(*l))'
10000 loops, best of 3: 35.1 usec per loop

Python教程:多维列表(元组)碾成一维形式相关推荐

  1. python把二维列表转成一维列表

    python把二维列表转成一维列表 先把列表转成numpy数组,然后使用flatten()函数把数组扁平化. 示例代码如下: # !/usr/bin/python # -*- coding: utf- ...

  2. python基础数据类型之列表,元组(基础二)

    第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...

  3. python设置二维列表_Python设置为列表

    python设置二维列表 Python设置为列表 (Python Set to List) Sometimes we have to create a list from the set object ...

  4. Python生成二维列表

    方法一: 使用np.zeros((m,n)) 方法二: 使用for循环,避免浅拷贝!!! 生成m行n列的二维列表:[[0]*n for _ in range(m) 不能使用b = [ [0] * m] ...

  5. python将二维列表内容写入和读取.csv文件

    python将列表按行写入至.csv文件 # coding:utf-8 import csv list=[[1,2,3,4],[5,6,7,8],[89,55,66666,5],['张三','李四', ...

  6. Python处理字符串和列表元组的小技巧

    变量值互换 a = 1 b = 100 # 变量值互换 a, b = b, aprint('a:', a) print('b:', b) 输出结果: a: 100 b: 1 多个变量赋值 a, b, ...

  7. Python创建多维列表(多维数组)

    1.方法 在做算法题时看到用来生成多维数组的方法 nums=[[0]*n for i in range(n)]#初始化一个n*n的零阵 这里[]中由一个表达式和一个for循环组成,for循环代表了nu ...

  8. python创建二维列表

    创建二维列表 一.追加生成法 二.赋值生成法 以上就是简单二维数列的生成法,小伙伴们快去试试吧. 今天我们学习创建二维列表的简单方法 一.追加生成法 大概就是说,先弄个盒子在把内容塞进去. 代码如下, ...

  9. Python打印二维列表

    综合利用join和split方法使二维列表打印后更加美观,每一行是二维列表里的每一个子列表 dp = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [0, 0, 0, 0, ...

最新文章

  1. [MySql]锁表与解锁
  2. Android中Context简介(通俗易懂)
  3. 深入Java中文编码乱码问题及最优解决方法
  4. 王帅:深入PHP内核(二)——SAPI探究(精辟)
  5. mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000
  6. [剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]
  7. Oracle 常用符号CHR
  8. 《结对-网页贪吃蛇游戏-需求分析》
  9. SQLAlchemy基本使用
  10. 日常笔记-snownlp情感分析计算情感得分
  11. ARM 汇编详解 -- 体系结构与编程
  12. 电路分压的基本公式忘记了~~
  13. 《web安全原理分析与实践》
  14. pdf格式的PPT如何保留动画效果?
  15. Elasticsearch第二篇:es之间版本比较
  16. 微型计算机系统有三类总线它们是,《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套...
  17. qq传输文件的软件测试点,QQ传文件速度对比测试活动
  18. 一位厦门大学CV硕士毕业生文言文致谢!畅聊三年求学路
  19. 用python Turtle海龟绘制时钟遇到的各种坑汇总
  20. Vue 使用jsPlumb 实现连线绘图

热门文章

  1. mysql 连接 选库 查询
  2. CSS魔法堂:说说Float那个被埋没的志向
  3. Mysql 内部结构 / Replication | 层次结构
  4. 百度之星初赛(1)解题报告
  5. Asp.net中基于Forms验证的角色验证授权[转]
  6. Cisco热备份路由协议(HSRP) 2
  7. 自由自在带你品尝一种能长出果蔬的冰淇淋
  8. Excel公式扫盲——SUMPRODUCT 函数
  9. 通过PDF无纸化测试SAP SmartForm打印效果
  10. 定义交货类型的装运点确定规则