如何将列表转换为python中的字典?



我想把'list to dictionary'.

输入>:
G_list = ['BRAFtGly464Glu', 'BRAFtGly464Val', 'BRAFtGly466Glu', 'BRAFtGly466Val']

想知道输出:

{'BRAF' : ['Gly464Glu', 'Gly464Val', 'Gly466Glu', 'Gly466Val']}

任何帮助都会很感激。由于

您可以这样做:

d = {}
for s in G_list:
k, v = s.split("t")
# k, v = s.split("t", 1)  # if the value might contain more tabs
d.setdefault(k, []).append(v)

由于这本质上是csv数据(可能来自文件,.csv.tsv),您也可以考虑使用csv模块。reader特别适用于任何字符串的可迭代对象:

from csv import reader
d = {}
for k, v in reader(G_list, delimiter="t"):
d.setdefault(k, []).append(v)

一些文档:

  • str.split
  • dict.setdefault
  • csv.reader

用空格分隔(使用str.split),并使用collections.defaultdict存储结果:

from collections import defaultdict
G_list = ['BRAFtGly464Glu', 'BRAFtGly464Val', 'BRAFtGly466Glu', 'BRAFtGly466Val']
d = defaultdict(list)
for key, value in map(str.split, G_list):
d[key].append(value)
print(d)

defaultdict(<class 'list'>, {'BRAF': ['Gly464Glu', 'Gly464Val', 'Gly466Glu', 'Gly466Val']})

方法之一:

from collections import defaultdict
G_list = ['BRAFtGly464Glu', 'BRAFtGly464Val', 'BRAFtGly466Glu', 'BRAFtGly466Val']
out = defaultdict(list)
for item in G_list:
data = item.split('t')
out[data[0]].append(data[1])

print (out)

输出:

defaultdict(<class 'list'>, {'BRAF': ['Gly464Glu', 'Gly464Val', 'Gly466Glu', 'Gly466Val']})
G_list = ['BRAFtGly464Glu', 'BRAFtGly464Val', 
'BRAFtGly466Glu', 'BRAFtGly466Val']
d={ }
for s in G_list :
u, v = s.spilt("t")
d.setdefault(u, [ ]).append(v)
Print(d)

defconvert (lst):

res_dct = {lst[i]: lst[i + 1] for i in range(0, len(lst), 2)}
return res_dct

lst = ['BRAFtGly464Glu', 'BRAFtGly464Val', 'BRAFtGly466Glu', 'BRAFtGly466Val']

打印(转换(lst)