列表到键值对的列表

2024-10-01 22:42:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,用分号分隔,然后用空格分隔:

'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(';')})

但它什么也没给我。有人知道如何做到这一点吗?你知道吗


Tags: inid列表fortypeproductfiltersplit
1条回答
网友
1楼 · 发布于 2024-10-01 22:42:49

你现在非常接近了,你可以在你的列表中调用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'}

相关问题 更多 >

    热门问题