在Python字典上合并键

2024-04-28 18:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python的图中使用minimun-cuts算法,这样:

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

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


Tags: 方法算法风格词典cutsminimun
3条回答

如果您有两个列表:

a = [5, 8, 10]
b = [3, 8, 9]

您可以将它们与最小剪切策略合并,如下所示:

list(set(b) | set(a))

如果要就地执行操作,请使用:

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

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

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

你可以import operator然后reduce把字典values像这样互相添加

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

相关问题 更多 >