gpt4 book ai didi

python集合列表在所有元素中找到对称差异

转载 作者:行者123 更新时间:2023-11-28 20:33:34 25 4
gpt4 key购买 nike

考虑这个集合列表

my_input_list= [
{1,2,3,4,5},
{2,3,7,4,5},
set(),
{1,2,3,4,5,6},
set(),]

我想得到唯一的独占元素 6 和 7 作为响应、列表或集合。设置首选。

我试过了print reduce(set.symmetric_difference,my_input_list) 但这给出了

{2,3,4,5,6,7}

并且我尝试按长度对列表进行排序,最小的第一个会由于两个空集而引发错误。最大优先给出与未排序相同的结果。

有什么帮助或想法吗?谢谢 :)

最佳答案

看起来最直接的解决方案是计算所有内容并返回只出现一次的元素。

此解决方案使用 chain.from_iterable(扁平化您的集合)+ Counter(计数)。最后,使用集合理解来过滤 count == 1 的元素。

from itertools import chain
from collections import Counter

c = Counter(chain.from_iterable(my_input_list))
print({k for k in c if c[k] == 1})
{6, 7}

快速说明;空文字 {} 用于指示一个空的 dict,而不是 set .对于后者,使用 set()

关于python集合列表在所有元素中找到对称差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342558/

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