我有一个列表:
['A;B;C;D\nE;F;G;H\nI;J;K;L\n']
我想创建一个新列表,其中包含两个维度的数据,如:
[[A,B,C,D],[E,F,G,H],[I,J,K,L]]
如何制作&#34 ;;"作为分隔符和" \ n"将数据输入新行?
感谢。
(我正在使用python v3)
答案 0 :(得分:1)
将listcomprehension
与str.split()
和str.strip()
a = ['A;B;C;D\nE;F;G;H\nI;J;K;L\n']
In [152]: [x.split(';') for x in a[0].strip().split('\n')]
Out[152]: [['A', 'B', 'C', 'D'], ['E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L']]
或将map
与lambda
功能
In [160]: map(lambda x: x.split(';') ,a[0].strip().split('\n'))
Out[160]: [['A', 'B', 'C', 'D'], ['E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L']]
两个时差都很小
In [162]: %timeit map(lambda x: x.split(';') ,a[0].strip().split('\n'))
100000 loops, best of 3: 2.04 µs per loop
In [161]: %timeit [x.split(';') for x in a[0].strip().split('\n')]
1000000 loops, best of 3: 1.46 µs per loop