我們如何從字典中找到並刪除重複值及其鍵值。如何在字典中查找重複值
例子:
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