Python如何将包含\t分隔符的列表转换为键对应值列表的字典
列表转字典实现方案
现有输入如下:
G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val']
目标输出为:
{'BRAF' : ['Gly464Glu', 'Gly464Val', 'Gly466Glu', 'Gly466Val']}
以下是两种可行实现方法:
方法1:基础Python原生实现
不需要引入额外依赖,逻辑直观:
G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val'] result = {} for item in G_list: # 按制表符拆分,第二个参数1表示最多拆分1次,避免元素内有额外制表符时出错 key, val = item.split('\t', 1) if key not in result: result[key] = [] result[key].append(val) print(result)
方法2:使用collections.defaultdict简化代码
省去手动判断key是否存在的步骤,代码更简洁:
from collections import defaultdict G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val'] result = defaultdict(list) for item in G_list: key, val = item.split('\t', 1) result[key].append(val) # 若需要严格输出普通字典格式,可增加转换步骤:result = dict(result) print(result)
内容的提问来源于stack exchange,提问作者union
相关产品推荐
相关产品推荐

