Python 有效地将元组列表转换为集合及其相应的和

Python 有效地将元组列表转换为集合及其相应的和,python,python-3.x,list,Python,Python 3.x,List,我有这样的清单: x = [(('abc', 'def'), 1), (('foo', 'bar'), 0), (('def', 'abc'), 3)] [(('abc', 'def'), 4), (('foo', 'bar'), 0)] 我想制作一个列表,其中包含唯一的元素及其相应的和,顺序应该不重要。我想要这样的列表: x = [(('abc', 'def'), 1), (('foo', 'bar'), 0), (('def', 'abc'), 3)] [(('abc', 'def'

我有这样的清单:

x = [(('abc', 'def'), 1), (('foo', 'bar'), 0), (('def', 'abc'), 3)]
[(('abc', 'def'), 4),  (('foo', 'bar'), 0)]
我想制作一个列表,其中包含唯一的元素及其相应的和,顺序应该不重要。我想要这样的列表:

x = [(('abc', 'def'), 1), (('foo', 'bar'), 0), (('def', 'abc'), 3)]
[(('abc', 'def'), 4),  (('foo', 'bar'), 0)]
在python中实现这一点的有效方法是什么

这与我询问的第一个参数是无序的tuple的tuple不同。

您可以使用它


@阿兰菲,请把问题再读一遍。我已经做了必要的修改。问题其实是不同的。在我的问题中,元组的顺序应该无关紧要。我的意思是,这只是一个微小的区别。您所需要做的就是首先对元组进行排序或将它们转换为冻结集。我想在重复列表中添加第二个问题就足够了。使用默认的dict from,并使用
frozenset
作为键:
defaultdict\u[frozenset(tuple)]+=value
我已经重新打开了这个问题。我最好尽快找到一个好答案,否则我会后悔这个决定的。。。我不是有意暗示我认为这个问题应该重新开始。不过,我会尽我所能让你感到骄傲。使用
c[k]+v
而不是
。更新
。不要对单个键值对使用
.update
。请注意,这(非常低效)会创建一本无用的字典。@juanpa.arrivillaga您能详细解释一下吗?如果可能的话,请写下答案。@juanpa.arrivillaga。谢谢你的建议。相应地修改。