从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
的值会发生什么情况?等