Разделить список в списке с помощью разделителя - PullRequest
0 голосов
/ 17 мая 2018

У меня есть такой список:

list =['1', '13372', '.', 'G', 'C', '608.91', 'PASS', 'CSQ=C|ENSG00000223972|ENST00000456328|Transcript|non_coding_transcript_exon_variant&non_coding_transcript_variant|620||||||1||1|DDX11L1|HGNC|37102|processed_transcript|YES||||||||3/3|||ENST00000456328.2:n.620G>C|||||||||||||||||||,C|ENSG00000223972|ENST00000450305|Transcript|splice_region_variant&non_coding_transcript_exon_variant&non_coding_transcript_variant|412||||||1||1|DDX11L1|HGNC|37102|transcribed_unprocessed_pseudogene|||||||||5/6|||ENST00000450305.2:n.412G>C|||||||||||||||||||,C|ENSG00000223972|ENST00000515242|Transcript|non_coding_transcript_exon_variant&non_coding_transcript_variant|613||||||1||1|DDX11L1|HGNC|37102|transcribed_unprocessed_pseudogene|||||||||3/3|||ENST00000515242.2:n.613G>C|||||||||||||||||||,C|ENSG00000223972|ENST00000518655|Transcript|intron_variant&non_coding_transcript_variant|||||||1||1|DDX11L1|HGNC|37102|transcribed_unprocessed_pseudogene||||||||||2/3||ENST00000518655.2:n.482-31G>C|||||||||||||||||||,C||ENSR00000528767|RegulatoryFeature|regulatory_region_variant|||||||1||||||regulatory_region|||||||||||||||||||||||||||||||']

Как мне получить такой список:

list = ['1', '13372', '.', 'G', 'C', '608.91', 'PASS', 'CSQ=C', 'ENSG00000223972', 'ENST00000456328', 'Transcript', 'non_coding_transcript_exon_variant&non_coding_transcript_variant', '620', ........etc....]

1 Ответ

0 голосов
/ 17 мая 2018

Один из способов - использовать itertools.chain с str.split.Вы можете использовать filter для удаления пустых строк.

from itertools import chain

res = list(filter(None, chain.from_iterable(i.split('|') for i in lst)))

Примечание. Я назвал ввод lst.Никогда не называйте переменную после встроенной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...