我有一个数据集,我想用它来创建一个字典。以下是数据集中的示例:
P10070 GLI2 GO:0045944
P10070 GLI2 GO:0045944
P10070 GLI2 GO:0009913
P10070 GLI2 GO:0006351
P10070 GLI2 GO:0006351
P10070 GLI2 GO:0001649
P49281 SLC11A2 GO:0071421
P49281 SLC11A2 GO:0070627
P49281 SLC11A2 GO:0070579
我想创建一个字典,其中第一列中的ID作为键,第三列中的一组不同术语与第一列中的术语相对应,作为值。 我知道如何创建一个集合,我知道如何创建一个普通的字典,但我似乎无法将这些技能放在一起来制作这个特定的字典。请你帮助我好吗? (实际数据集包含的行数多于此处显示的数量!) 干杯!
卡尔
答案 0 :(得分:1)
您可以使用defaultdict:
import sys
from collections import defaultdict
d = defaultdict(set)
for line in sys.stdin:
c1, c2, c3 = line.split()
d[c1].add(c3)
print d
答案 1 :(得分:0)
假设变量dataset
存在且包含您问题的字符串,
你可以这样做:
result_dict = dict()
for row in dataset.split('\n'):
name, _, value = row.split()
result_dict.setdefault(name, set()).add(value)
result_dict
将包含您想要的内容(我猜)。
答案 2 :(得分:0)
这取决于您获取初始数据的方式。我假设你已经得到它并且它是一个可迭代的结构,并且这些行本身是可迭代的。从那里你可以使用内置的理解:
>>> dataset = [
... ['key0', 'ignore0', 'value0'],
... ['key1', 'ignore1', 'value1'],
... ['key2', 'ignore2', 'value2']]
>>> my_dict = dict([(row[0], row[2]) for row in dataset])
>>> my_dict
{'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}