我们如何从字典中找到并删除重复值及其键值。如何在字典中查找重复值
例子:
f = {1:4, 1:3, 4:4, 9:4, 5:7}
输出:
f = f = {1:3, 5:7}
正如你可以看到所有的按键与他们重复的值4已被删除...
也就是有办法跟踪有多少物品已被删除......在上述情况下,3件物品已被删除。
我们如何从字典中找到并删除重复值及其键值。如何在字典中查找重复值
例子:
f = {1:4, 1:3, 4:4, 9:4, 5:7}
输出:
f = f = {1:3, 5:7}
正如你可以看到所有的按键与他们重复的值4已被删除...
也就是有办法跟踪有多少物品已被删除......在上述情况下,3件物品已被删除。
跟踪有多少项目已被删除,你可以只创建一个变量= 0,然后+ =每次,它消除了一些时间变量由1
或
你可以只测量len(f),然后在运行代码后测量len(f),看看两者之间有什么区别,并且已知有多少物品已被删除
啊是的,这是一个有趣和简单的方法来计算出有多少物品已被删除...感谢你的帮助! – user3029969
计算值:
import collections
value_occurrences = collections.Counter(f.values())
然后筛选出多次出现的那些:
filtered_dict = {key: value for key, value in f.items()
if value_occurences[value] == 1}
要了解有多少被拆除,刚刚从旧减去新字典的大小。
它给出了一个错误,没有定义集合 – user3029969
@ user3029969:首先导入集合。 – user2357112
只是为了理解...关键:键值,f.items值()...这条线做什么 – user3029969
试试这个
list1=[]
f = {1:4, 1:3, 4:4, 9:4, 5:7}
for value in f.values():
if value not in list1:
list1.append(value)
for key in f.keys():
if key in list1:
del f[key]
return f
输出将是
{1: 3, 5: 7, 9: 4}
我不知道从哪里开始... ...我已经寻找很多..但我得到的答案不要我无法连接我想要实现的目标。 – user3029969
只需遍历'f.values()'并对每个值再次迭代以查看是否有重复项,然后删除它们。虽然这可能是低效的('O(n^2)') – hkk
由于1:4和1:3共享相同的结果字典,所以它不会有'1:3'关键所以它们中的一个将不存在,并且根据输入顺序它可能是'1:3'。 – SethMMorton