我有一个以分号分隔的字符串,然后用空格分隔:
'gene_id EFNB2; Gene_type cDNA_supported; transcript_id EFNB2.aAug10; product_id EFNB2.aAug10;'
我想通过基于分隔符的分割在一行中创建一个字典,但到目前为止我只能到达列表列表:
filter(None,[x.split() for x in atts.split(';')])
这给了我:
[['gene_id', 'EFNB2'], ['Gene_type', 'cDNA_supported'], ['transcript_id', 'EFNB2.aAug10'], ['product_id', 'EFNB2.aAug10']]
当我想要的是:
{'gene_id': 'EFNB2', 'Gene_type': 'cDNA_supported', 'transcript_id': 'EFNB2.aAug10', 'product_id': 'EFNB2.aAug10'}
我试过了:
filter(None,{k:v for k,v in x.split() for x in atts.split(';')})
但它什么都没给我。有人知道如何做到这一点吗?
答案 0 :(得分:4)
您现在非常接近,只需在列表清单上拨打dict
:
>>> lst = [['gene_id', 'EFNB2'], ['Gene_type', 'cDNA_supported'], ['transcript_id', 'EFNB2.aAug10'], ['product_id', 'EFNB2.aAug10']]
>>> dict(lst)
{'Gene_type': 'cDNA_supported',
'gene_id': 'EFNB2',
'product_id': 'EFNB2.aAug10',
'transcript_id': 'EFNB2.aAug10'}