Reputation: 11
I have a list like this:
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|||||||||||||||||||||||||||||||']
How can I get a list like this:
list = ['1', '13372', '.', 'G', 'C', '608.91', 'PASS', 'CSQ=C', 'ENSG00000223972', 'ENST00000456328', 'Transcript', 'non_coding_transcript_exon_variant&non_coding_transcript_variant', '620', ........etc....]
Upvotes: 0
Views: 41
Reputation: 164673
One way is to use itertools.chain
with str.split
. You can use filter
to remove empty strings.
from itertools import chain
res = list(filter(None, chain.from_iterable(i.split('|') for i in lst)))
Note I have named the input lst
. Never name a variable after a built-in.
Upvotes: 2