推导式中的字典唯一值



我有个小任务解决了。

任务:找出序列中所有的和等于某个数的pair。

例如(1,2,3,4)和目标3产生一对(1,2)。

我想出了一个解决方案:

def pair(lst, find):
res = []
for i in lst:
if (find - i) in lst:
res.append([(find - i),i])

return {x:y for x,y in res}

看到字典理解过滤掉所有重复的解,我有点惊讶。

这实际上形成了我的问题:字典理解如何以及为什么删除重复项?

因为dict对其键进行散列,然后将它们存储在类似集合的数据结构中。因此,新创建的{key:value}覆盖了旧的{key:value},在您的例子中是重复的。我想这可能是一个重复的问题

最新更新