从Python中的数据帧创建字典

从Python中的数据帧创建字典,python,dictionary,Python,Dictionary,对于以下数据,我如何创建一个以id为键的字典以及元组[(x,y)]数组的值 所需的词典是 {a:[(1,2),(2,3)],b:[(3,4)]}在迭代表时(无论您如何操作),检查id是否已在dict中,并附加到现有值或添加新键: data = {} for id,x,y in SOURCE: if id in data: data[id].append((x,y)) else: data[id] = [(x,y)] 迭代表时(无论您如何操作),检

对于以下数据,我如何创建一个以id为键的字典以及元组[(x,y)]数组的值

所需的词典是


{a:[(1,2),(2,3)],b:[(3,4)]}

在迭代表时(无论您如何操作),检查id是否已在
dict
中,并附加到现有值或添加新键:

data = {}
for id,x,y in SOURCE:
    if id in data:
        data[id].append((x,y))
    else:
        data[id] = [(x,y)]

迭代表时(无论您如何操作),检查id是否已在
dict
中,并附加到现有值或添加新键:

data = {}
for id,x,y in SOURCE:
    if id in data:
        data[id].append((x,y))
    else:
        data[id] = [(x,y)]

@tadhg mcdonald jensen提供的解决方案似乎是利用defaultdict的绝佳机会:

from collections import defaultdict

data = defaultdict(list)

with open(SOURCE_FILE_NAME) as source:
    for line in source:
        id, x, y = line.rstrip().split()
        data[id].append((x, y))

这避免了设置或追加的决定——只需追加并让defaultdict为您做正确的事情。

由@tadhg mcdonald jensen提供的解决方案似乎是利用defaultdict的绝佳机会:

from collections import defaultdict

data = defaultdict(list)

with open(SOURCE_FILE_NAME) as source:
    for line in source:
        id, x, y = line.rstrip().split()
        data[id].append((x, y))
这避免了设置或追加的决定——只需追加并让defaultdict为您做正确的事情。

可能是的副本,也可能是的副本