2016-09-22 104 views
-1

我试图将1D列表转换为2D,只要其中有\n即可。在每个“ n”中将1D列表转换为2D - Python

a = ['a', 'b', '\n', 'c', 'd'] 

a = [['a', 'b']['c', 'd']] 

谁能帮助我?

编辑

这是因为我有一个字符串

a = """\ 
f:   1000:000 000 000 000 000 000 000 000 000 000 000 000 f:   2000:000 000 000 000 000 000 000 000 000 000 000 000 
f:   0000:000 000 000 000 000 000 000 000 000 000 000 000 f:   0000:000 000 000 000 000 000 000 000 000 000 000 000 
f:   0000:000 000 000 000 000 000 000 666 000 000 000 000 f:   0000:000 000 000 000 000 000 000 000 000 000 000 000 
f:   0000:000 000 000 000 000 333 000 000 000 000 000 000 f:   0000:000 000 000 000 000 000 000 000 000 000 000 000 
""" 

所以,当我把它转换成listby做list(a),在每一个换行符我得到\n,所以我只想把它分解那里。

+0

dublicate? http://stackoverflow.com/questions/4322705/split-a-list-into-nested-lists-on-a-value –

+0

@ a.smiet更新了问题 – Akshay

回答

4

最简单的方法是加入列表来创建字符串。然后,它在“\ n”分割和转换的每个字符串列表中的子列表:

>>> a_string = ''.join(a) 
>>> map(list, a_string.split()) 
[['a', 'b'], ['c', 'd']] 

但是,如果你不想去用这种方法,下面是一个基于for回路简单的逻辑:

>>> my_list = [] 
>>> sub_list = [] 
>>> for item in a: 
...  if item != '\n': 
...   sub_list.append(item) 
...  else: 
...   my_list.append(sub_list) 
...   sub_list = [] 
... 
>>> my_list.append(sub_list) 
>>> my_list 
[['a', 'b'], ['c', 'd']]