2017-04-21 23 views
0

我試過itertools,map()但我不知道什麼是錯的。 IHAVE這樣的:在列表中連接列表的列表Python3

[['>Fungi|A0A017STG4.1/69-603 UP-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', ['-', '-', '-', ... , '-', '-', '-', '-']],['>Fungi|A0A017STG4.1/69-603 UP1-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', ['-', '-', '-', ... , '-', '-', '-', '-']],['>Fungi|A0A017STG4.1/69-603 UP12-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', ['-', '-', '-', ... , '-', '-', '-', '-']]] 

我想這一點:

[['>Fungi|A0A017STG4.1/69-603 UP-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}','-', '-', '-', ... , '-', '-', '-', '-'],['>Fungi|A0A017STG4.1/69-603 UP1-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}','-', '-', '-', ... , '-', '-', '-', '-'],['>Fungi|A0A017STG4.1/69-603 UP10-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}','-', '-', '-', ... , '-', '-', '-', '-']] 

我試圖

for i in x: 
    map(i,[]) 

import itertools 
a = [["a","b"], ["c"]] 
print list(itertools.chain.from_iterable(a)) 

請賜教!

+0

[Flatten(an irregular)list of list]可能的重複](http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists) –

回答

1

必須有更好的Python化解決方案,但你可以使用:

n = [] 
for x in your_list: 
    temp_list = [x[0]] 
    [temp_list.append(y) for y in x[1]] 
    n.append(temp_list) 

print(n) 

輸出:

[['>Fungi|A0A017STG4.1/69-603 UP-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', '-', '-', '-', Ellipsis, '-', '-', '-', '-'], ['>Fungi|A0A017STG4.1/69-603 UP1-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', '-', '-', '-', Ellipsis, '-', '-', '-', '-'], ['>Fungi|A0A017STG4.1/69-603 UP12-domain-containing protein {ECO:0000313|EMBL:EYE99555.1}', '-', '-', '-', Ellipsis, '-', '-', '-', '-']] 
0

簡單oneliner可以這樣做:

[sum(x, []) for x in yourlist] 

沒有TE總和(X,[])是相當緩慢的,所以對於嚴重列表合併使用更多的樂趣和照明快速列表合併技術,可在

join list of lists in python

例如所討論的,簡單的兩襯墊的方式更快

import itertools 
map(list, (map(itertools.chain.from_iterable, yourlist)))