2017-04-21 9 views
0

itertools、map()を試しましたが、何が間違っているのか分かりません。このIHAVE:私はリスト内のリストのリストを連結するPython3

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

を試してみましたが、この

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

のplsは私を啓発

[['>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}','-', '-', '-', ... , '-', '-', '-', '-']] 

[['>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}', ['-', '-', '-', ... , '-', '-', '-', '-']]] 

私はこれが欲しいです!

+0

[不規則な(不規則な)リストのリスト]の可能な複製(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) 

出力:シンプルonelinerを行うことができます

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

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

なしに例えば

join list of lists in python

で論じた技術をマージ使用もっと楽しく、照明速いリストをマージ深刻なリストについては、単純な二ライナーは

import itertools 
map(list, (map(itertools.chain.from_iterable, yourlist))) 
方法速くなるようにTE和(X、[])は、やや遅いです
関連する問題