在字典上合并键-Python

在字典上合并键-Python,python,dictionary,merge,Python,Dictionary,Merge,我想在python图形中使用minimun cuts算法,以便: { 1 : [5, 8, 10], 2 :[3, 8, 9] } == { 1 : [5, 8, 10, 3, 9] } 什么是合并词典的更具python风格的方法?您可以使用set.union获取唯一值,然后将其转换为set,并使用min函数获取最小键: >>> {min(d.keys()):list(set().union(*d.values()))} {1: [8, 9, 10, 3, 5]} 您可以

我想在python图形中使用minimun cuts算法,以便:

 { 1 : [5, 8, 10], 2 :[3, 8, 9] } == { 1 : [5, 8, 10, 3, 9] }

什么是合并词典的更具python风格的方法?

您可以使用
set.union
获取唯一值,然后将其转换为set,并使用
min
函数获取最小键:

>>> {min(d.keys()):list(set().union(*d.values()))}
{1: [8, 9, 10, 3, 5]}

您可以使用
set.union
获取唯一值,然后将其转换为set,并使用
min
功能获取最小键:

>>> {min(d.keys()):list(set().union(*d.values()))}
{1: [8, 9, 10, 3, 5]}
如果您有两个列表:

a = [5, 8, 10]
b = [3, 8, 9]
您可以将它们与最小切割策略合并,如下所示:

list(set(b) | set(a))
如果要就地执行操作,请使用:

a[:] = list(set(b) | set(a))
如果您有两个列表:

a = [5, 8, 10]
b = [3, 8, 9]
您可以将它们与最小切割策略合并,如下所示:

list(set(b) | set(a))
如果要就地执行操作,请使用:

a[:] = list(set(b) | set(a))

您可以
导入运算符
,然后
通过这样将它们彼此相加来减少字典中的

set(reduce(operator.add, d.values())) # the set of each successive value added to the next

您可以
导入运算符
,然后
通过这样将它们彼此相加来减少字典中的

set(reduce(operator.add, d.values())) # the set of each successive value added to the next


为什么Jojo的两个列表值?“Jojo”,它是针对文本文件的输入进行测试,我发现它比使用图形函数更容易,当你考虑使用其中一个答案时,我也会考虑从开始使用集合,Jojo为什么是一个字典的两个列表值?“Jojo”,它是用来测试一个文本文件的输入,而我发现它比使用图形函数更容易,当你考虑使用一个答案时,我也会考虑从一开始就使用集合,而不是考虑List.Wo不<代码>列表(SET(A)集合(B))< /Cord>?@ WorsServer尝试!提示:
+
运算符可能没有为
集定义。我真傻,
-当然@jojo
|
做什么?它像一个regex
基本上像一个
还是
?@HalcyonAbrahamRamirez有两个集合
a | b==a.union(b)
为什么不
列表(集合(a)|集合(b))
?@worldssender试试看!提示:
+
运算符可能没有为
集定义。我真傻,
-当然@jojo
|
做什么?它是否像一个regex
基本上类似于
?@halcyonabrahamramiriz,具有两组
a | b==a.union(b)
是否打印了?您需要对输出调用
set
。@jojo OP从未说过要删除重复项。没有明确地说,但如果您仔细看问题,所需的输出会删除重复项。@jojo更正了,没有注意到那里的8。您打印了吗?您需要对输出调用
set
。@jojo OP从未说过要删除重复项。没有明确地说,但如果仔细看问题,所需的输出会删除重复项。@jojo更正了,没有注意到其中的8。