gpt4 book ai didi

python - 有效地将元组列表转换为具有相应总和的集合

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:27 24 4
gpt4 key购买 nike

我有这样的列表:

x = [(('abc', 'def'), 1), (('foo', 'bar'), 0), (('def', 'abc'), 3)]

我想制作一个列表,其中包含唯一元素及其相应的总和,其中的顺序无关紧要。我想要这样的列表:

[(('abc', 'def'), 4),  (('foo', 'bar'), 0)]

在 python 中执行此操作的有效方法是什么?

它不同于this因为我问的是元组的元组,其中第一个参数是无序的。

最佳答案

您可以使用 collections.Counter为此

from collections import Counter

c = Counter()
for k,v in x:
c[tuple(sorted(k))] += v

print(c)
# Counter({('abc', 'def'): 4, ('bar', 'foo'): 0})

print (list(c.items()))
# [(('abc', 'def'), 4), (('bar', 'foo'), 0)]

关于python - 有效地将元组列表转换为具有相应总和的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com