2015-06-26 70 views
-3

我有一個具有相同值的兩個鍵的Python字典。當兩個鍵具有相同的值時從Python字典中刪除項目

mydict = {'a':'hi','b':'bye','c':'hi'} 

如果我想刪除剛纔元素怎麼辦'c':'hi'

我都嘗試del mydict['c']mydict.pop('c',None)。這兩個給我一個KeyError

+6

如果你得到一個'KeyError',那麼你的字典*不包含密鑰''c'' ... – jonrsharpe

+0

它有鑰匙,我有一個if語句來檢查鑰匙是否存在然後刪除它。我的錯誤如下所示:KeyError:'hi' – nam

+2

**編輯問題**以提供[最小示例](http://stackoverflow.com/help/mcve)。您似乎試圖根據註定要失敗的* value *而不是* key *進行刪除。 – jonrsharpe

回答

0

首先,將相同的值分配給多個鍵時不會有區別。 Python代碼中的所有元素都必須具有唯一的,不可變的鍵,但值不存在這樣的約束。所以不要太擔心!

這一邊,你提出的兩個選項的行爲如預期。拋出的KeyError意味着鍵「c」不在字典中。這使我相信,當你調用del或pop時,你所顯示的內容不在字典中。

+0

是的,你說得對。兩個鍵的值是否相同並不重要。您仍然可以刪除密鑰。事實證明,我刪除了相同的密鑰兩次,因此錯誤。 – nam

相關問題