Python教程:多维列表(元组)碾成一维形式
一.需求
原格式:
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教程:多维列表(元组)碾成一维形式相关推荐
- python把二维列表转成一维列表
python把二维列表转成一维列表 先把列表转成numpy数组,然后使用flatten()函数把数组扁平化. 示例代码如下: # !/usr/bin/python # -*- coding: utf- ...
- python基础数据类型之列表,元组(基础二)
第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...
- python设置二维列表_Python设置为列表
python设置二维列表 Python设置为列表 (Python Set to List) Sometimes we have to create a list from the set object ...
- Python生成二维列表
方法一: 使用np.zeros((m,n)) 方法二: 使用for循环,避免浅拷贝!!! 生成m行n列的二维列表:[[0]*n for _ in range(m) 不能使用b = [ [0] * m] ...
- python将二维列表内容写入和读取.csv文件
python将列表按行写入至.csv文件 # coding:utf-8 import csv list=[[1,2,3,4],[5,6,7,8],[89,55,66666,5],['张三','李四', ...
- Python处理字符串和列表元组的小技巧
变量值互换 a = 1 b = 100 # 变量值互换 a, b = b, aprint('a:', a) print('b:', b) 输出结果: a: 100 b: 1 多个变量赋值 a, b, ...
- Python创建多维列表(多维数组)
1.方法 在做算法题时看到用来生成多维数组的方法 nums=[[0]*n for i in range(n)]#初始化一个n*n的零阵 这里[]中由一个表达式和一个for循环组成,for循环代表了nu ...
- python创建二维列表
创建二维列表 一.追加生成法 二.赋值生成法 以上就是简单二维数列的生成法,小伙伴们快去试试吧. 今天我们学习创建二维列表的简单方法 一.追加生成法 大概就是说,先弄个盒子在把内容塞进去. 代码如下, ...
- Python打印二维列表
综合利用join和split方法使二维列表打印后更加美观,每一行是二维列表里的每一个子列表 dp = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [0, 0, 0, 0, ...
最新文章
- [MySql]锁表与解锁
- Android中Context简介(通俗易懂)
- 深入Java中文编码乱码问题及最优解决方法
- 王帅:深入PHP内核(二)——SAPI探究(精辟)
- mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000
- [剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]
- Oracle 常用符号CHR
- 《结对-网页贪吃蛇游戏-需求分析》
- SQLAlchemy基本使用
- 日常笔记-snownlp情感分析计算情感得分
- ARM 汇编详解 -- 体系结构与编程
- 电路分压的基本公式忘记了~~
- 《web安全原理分析与实践》
- pdf格式的PPT如何保留动画效果?
- Elasticsearch第二篇:es之间版本比较
- 微型计算机系统有三类总线它们是,《微机原理、汇编语言与接口技术》韩晓茹(习题解答全套...
- qq传输文件的软件测试点,QQ传文件速度对比测试活动
- 一位厦门大学CV硕士毕业生文言文致谢!畅聊三年求学路
- 用python Turtle海龟绘制时钟遇到的各种坑汇总
- Vue 使用jsPlumb 实现连线绘图