将一个维度列表转换为具有特定分隔符的两个diminsions

时间:2014-11-25 14:38:36

标签: python string list python-3.x delimiter

我有一个列表:

['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)

1 个答案:

答案 0 :(得分:1)

listcomprehensionstr.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']]

或将maplambda功能

一起使用
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