第一种:使用extend()
1
2
3
4
5
6
7
8
|
>>> 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' ]
|
第二种:使用+
1
2
3
4
5
6
7
8
9
|
>>> 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数组的自带方法
1
2
3
4
5
6
7
8
9
10
11
|
>>> 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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
>>> 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.
1
2
3
4
5
6
7
8
9
|
>>> 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.
1
2
3
4
5
6
7
8
9
|
>>> 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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/HZ848810/article/details/72875267