我想在python图中使用最小化切割算法,以便:
{ 1 : [5, 8, 10], 2 :[3, 8, 9] } == { 1 : [5, 8, 10, 3, 9] }
合并字典的pythonic方式是什么?
答案 0 :(得分:2)
你可以import operator
然后reduce
字典values
将它们添加到彼此中
set(reduce(operator.add, d.values())) # the set of each successive value added to the next
答案 1 :(得分:1)
您可以使用set.union
获取唯一值,然后将其转换为set并使用min
函数获取最小键:
>>> {min(d.keys()):list(set().union(*d.values()))}
{1: [8, 9, 10, 3, 5]}
答案 2 :(得分:1)
如果您有两个列表:
a = [5, 8, 10]
b = [3, 8, 9]
您可以将它们与最小切割政策合并,如下所示:
list(set(b) | set(a))
如果您想进行操作,请使用:
a[:] = list(set(b) | set(a))