2016-09-22 103 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']]