Python 使用分隔符在列表中拆分列表
我有这样一份清单:Python 使用分隔符在列表中拆分列表,python,string,python-2.7,list,Python,String,Python 2.7,List,我有这样一份清单: 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/
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....]
我怎样才能得到这样的列表:
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....]
一种方法是将
itertools.chain
与str.split
一起使用。您可以使用filter
删除空字符串
from itertools import chain
res = list(filter(None, chain.from_iterable(i.split('|') for i in lst)))
注意,我已将输入命名为
lst
。切勿在内置变量后命名。一种方法是将itertools.chain
与str.split
一起使用。您可以使用filter
删除空字符串
from itertools import chain
res = list(filter(None, chain.from_iterable(i.split('|') for i in lst)))
注意,我已将输入命名为
lst
。切勿在内置变量后命名变量。次要问题:对于Python 2.x,您不需要调用列表
调用,这一点也不严重。次要问题:对于Python 2.x,您不需要调用列表
调用,这一点也不严重。您可以使用您最喜欢的文本编辑器进行此操作。不幸的是,整个文件是20GB,我的文本编辑器无法处理,下面的答案有帮助吗?如果是这样,考虑一下(左边的绿色刻度),或者要求澄清。你可以使用你最喜欢的文本编辑器。不幸的是,整个文件是20GB,我的文本编辑器无法处理,下面的答案有帮助吗?如果是这样,考虑一下(左边的绿色蜱),或者要求澄清。