python实现将读入的多维list转为一维list的方法


Posted in Python onJune 28, 2018

第一种:使用extend()

>>> lines = open('test.txt').readlines()
>>> lines
['1\n', '2\n', '3\n', '4,5\n']
>>> for line in lines:
...  ll.extend(line.strip().split(','))
... 
>>> ll
['1', '2', '3', '4', '5']

第二种:使用+

>>> ll = []
>>> lines = open('test.txt').readlines()
>>> lines
['1\n', '2\n', '3\n', '4,5\n']
>>> for line in lines:
...  ll = ll + line.strip().split(',')
... 
>>> ll
['1', '2', '3', '4', '5']

第三种:使用flat array数组的自带方法

>>> ll = []
>>> lines = open('test.txt').readlines()
>>> for line in lines:
...  ll.append(line.strip().split(','))
... 
>>> ll = np.array(ll)
>>> np.hstack(ll.flat)
array(['1', '2', '3', '4', '5'], 
  dtype='|S1')
>>> list(np.hstack(ll.flat))
['1', '2', '3', '4', '5']

总结:

1. extend()与append()的区别

append()可以接受任何数据类型和格式的数据作为一个元素插入原list

extend() 则仅能将任何数据类型和格式的数据展开作为一组元素插入原list

eg.

>>> a = [1,'a']
>>> a.extend(np.array([2,'b']))
>>> a
[1, 'a', '2', 'b']
>>> a.extend([3,['c']])
>>> a
[1, 'a', '2', 'b', 3, ['c']]
>>> a = [1,'a']
>>> a.extend(np.array([2,'b']))
>>> a
[1, 'a', '2', 'b']
>>> a.extend([3,['c']])
>>> a
[1, 'a', '2', 'b', 3, ['c']]
>>> a = [1,'a']
>>> a.append(np.array([2,'b']))
>>> a
[1, 'a', array(['2', 'b'], 
  dtype='|S21')]
>>> a.append([3,['c']])
>>> a
[1, 'a', array(['2', 'b'], 
  dtype='|S21'), [3, ['c']]]

2. flatten()无法对dtype = object的array进行展开,dtype = object说明array中的元素是list,即其不是满矩阵结构

eg.

>>> a = np.array([[1,2],[3,4]])
>>> a.dtype
dtype('int64')
>>> a.flatten()
array([1, 2, 3, 4])
>>> 
>>> a = np.array([[1,2],[3,4],[5]])
>>> a.flatten()
array([[1, 2], [3, 4], [5]], dtype=object)

3.readlines读取文件默认str,可以通过map转换数据类型

eg.

>>> ll = []
>>> lines = open('test.txt').readlines()
>>> lines
['1\n', '2\n', '3\n', '4,5\n']
>>> for line in lines:
...  ll.append(map(int,line.strip().split(',')))
... 
>>> ll
[[1], [2], [3], [4, 5]]

以上这篇python实现将读入的多维list转为一维list的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
python实现堆和索引堆的代码示例
Mar 19 Python
python如何实现内容写在图片上
Mar 23 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
使用Python实现一个栈判断括号是否平衡
Aug 23 Python
python K近邻算法的kd树实现
Sep 06 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
Python extract及contains方法代码实例
Sep 11 Python
numpy matrix和array的乘和加实例
Jun 28 #Python
python 按不同维度求和,最值,均值的实例
Jun 28 #Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 #Python
python 列表降维的实例讲解
Jun 28 #Python
基于Python中求和函数sum的用法详解
Jun 28 #Python
Python之list对应元素求和的方法
Jun 28 #Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 #Python
You might like
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
教大家制作简单的php日历
2015/11/17 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
javascript tips提示框组件实现代码
2010/11/19 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
新大陆软件面试题
2016/11/24 面试题
计算机大学生的自我评价
2013/10/15 职场文书
行政前台岗位职责
2013/12/04 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
同居协议书范本
2014/04/23 职场文书
家装业务员岗位职责
2015/04/03 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书