字典以元组为关键

时间:2017-08-12 13:21:58

标签: python dictionary tuples

目前我创建了一个使用元组对作为键的字典。我的字典目前分别计算(a,b)和(b,a)等对,但我最终想要(a,b)==(b,a)。

目前,我的代码部分如下所示:

final = collections.defaultdict(list)
for a,b in pairs:

    final[(a[0],b[0])].append((a[2],a[1]))
    final[(b[0],a[0])].append((b[2],b[1]))

在添加之前,我是否必须检查字典中是否存在(a,b)的(b,a)?或者在完成后完成字典修复?

1 个答案:

答案 0 :(得分:0)

pairs = [frozenset([1,2]), frozenset([3,4]), frozenset([2,1]), 
frozenset([5,6]), frozenset([7,8]), frozenset([6,5])]

for pair in pairs:
    pair_count.update({pair: pair_count.get(pair, 0) + 1})

pair_count
{frozenset([5, 6]): 2, frozenset([1, 2]): 2, frozenset([8, 7]): 1, frozenset([3, 4]): 1}