从defaultdict python中删除重复值

从defaultdict python中删除重复值,python,dictionary,Python,Dictionary,我有一本字典 a = {6323: [169635, 169635, 169635], 6326: [169634,169634,169634,169634,169634,169634,169638,169638,169638,169638], 6425: [169636,169636,169636,169639,169639,169640]} 如何删除字典中每个键的重复值?并使值成为[值,出现] 输出应该是 b = {6323: [(169635, 3)], 6326: [(169634,

我有一本字典

a = {6323: [169635, 169635, 169635], 6326: [169634,169634,169634,169634,169634,169634,169638,169638,169638,169638], 6425: [169636,169636,169636,169639,169639,169640]}
如何删除字典中每个键的重复值?并使值成为[值,出现]

输出应该是

b = {6323: [(169635, 3)], 6326: [(169634, 6), (19638, 4)], 6425: [(169636, 3), (19639, 2), (19640, 1)]}. 
编辑: 抱歉,我粘贴了dict.items()输出,因此它们不是字典。我现在改正了


还对问题进行了编辑,使其更加清晰

我建议对项目进行迭代,并为每个值构建一个defaultdict,递增出现次数。然后将其转换为元组列表(使用item方法),并将其放入输出字典中

b = {}
for k,v in a.items():
    d = defaultdict(int)
    for i in v:
        d[i] += 1
    b[k] = d.items()

这些是带有元组的集合(对于值中的可变列表对象是不可能的),而不是字典。字典在键和值之间有冒号,而不是逗号和括号。这些是集合,而不是字典…除了缺少一个
之外,即使我们假设这些是字典,
a
中的键值对与
c
中的预期输出有什么关系?我可以猜测,您希望
b
中的列表中的值从
a
中提取值,但请明确;如果
a
中缺少密钥,会发生什么情况?如果存在多个唯一值,
b
列表中的顺序会发生什么情况?当来自
b
的列表中存在多个唯一值时,
a
的值会发生什么情况?等