我的代碼
mydict={True:'Visa',2:"verified",1:'Married',(111,222):'dept1 office 2'}
print(f"mydict.get(True)---> {mydict.get(True)}")
print(f"mydict.get(2)---> {mydict.get(2)}")
print(f"mydict.get(1)---> {mydict.get(1)}")
print(f"mydict.get((111,222))---> {mydict.get((111,222))}")
輸出
mydict.get(True)---> Married
mydict.get(2)---> verified
mydict.get(1)---> Married
mydict.get((111,222))---> dept1 office 2
我的問題是為什么 mydict.get(True) ---> 結婚了...應該是 Visa 對...為什么會這樣?
uj5u.com熱心網友回復:
Python 中最棒的展示效果之一,基于您不能擁有多個相等鍵的事實(如==-equal)
>>> {1: "one", True: "true", 1.0: "ok", 0.99999999999999999: "weird"}
{1: 'weird'} # ??
如果==多次遇到相同的鍵(通過 進行相等性測驗),則第一個鍵“獲勝”,但最后一個值:
>>> d = {1: 2}
>>> d[True] = 5
>>> d
{1: 5}
>>> d = {True: 2}
>>> d[1] = 5
>>> d
{True: 5}
uj5u.com熱心網友回復:
資料型別不是字典中數字鍵散列的區別因素。
以下詞典:
{True:'A', 1:'B', 1.0:'C'}
實際上最終是:
{True: 'C'}
因為當您多次提供相同的密鑰時,最后一個值會更新初始密鑰。因此,無論是布林值、整數還是浮點數,值 1 都被認為是相同的。這與比較運算子一致:True == 1 == 1.0
如果您想要區分,您需要將所有內容轉換為字串或將資料型別添加為鍵的一部分(看起來都不是很好,所以也許您想對 True 使用不同的約定鑰匙)。
uj5u.com熱心網友回復:
如果你查字典,你會知道:
(因為True和1其中之一一樣被洗掉,因為你不能有兩個鍵dict)
>>> mydict={True:'Visa',2:"verified",1:'Married',(111,222):'dept1 office 2'}
>>> mydict
{True: 'Married', 2: 'verified', (111, 222): 'dept1 office 2'}
您可以使用不同的鍵,如False:
mydict={False:'Visa',2:"verified",1:'Married',(111,222):'dept1 office 2'}
print(f"mydict.get(False)---> {mydict.get(False)}")
print(f"mydict.get(2)---> {mydict.get(2)}")
print(f"mydict.get(1)---> {mydict.get(1)}")
print(f"mydict.get((111,222))---> {mydict.get((111,222))}")
輸出:
mydict.get(False)---> Visa
mydict.get(2)---> verified
mydict.get(1)---> Married
mydict.get((111,222))---> dept1 office 2
你不能在 a 中有多個鍵,dict如果你這樣定義,第一個鍵保持并繼續下一個,下一個,...并選擇最后一個值:
>>> dct = {True : 1, 1 : 2 , 1.0 : 3, 0 : 4, False : 5, 2.0 : 6, 2 : 7}
>>> dct
{True: 3, 0: 5, 2.0: 7}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/334495.html
上一篇:字典用嵌套值更新所有鍵
下一篇:根據串列過濾字典
