我想將“串列轉換為字典”。
輸入:
G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val']
想知道輸出:
{'BRAF' : ['Gly464Glu', 'Gly464Val', 'Gly466Glu', 'Gly466Val']}
任何幫助,將不勝感激。謝謝
uj5u.com熱心網友回復:
您可以執行以下操作:
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 資料(可能來自檔案、 a.csv或更確切地說 a .tsv),您也可以考慮使用該csv模塊。該reader特別是將在可迭代的字串的作業:
from csv import reader
d = {}
for k, v in reader(G_list, delimiter="\t"):
d.setdefault(k, []).append(v)
一些檔案:
str.splitdict.setdefaultcsv.reader
uj5u.com熱心網友回復:
用空格分割(使用str.split)并使用存盤結果collections.defaultdict:
from collections import defaultdict
G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val']
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']})
uj5u.com熱心網友回復:
方法之一:
from collections import defaultdict
G_list = ['BRAF\tGly464Glu', 'BRAF\tGly464Val', 'BRAF\tGly466Glu', 'BRAF\tGly466Val']
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']})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/328981.html
