日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

二级python 刷题就能过吗_Python 刷题笔记:这很不python,官方大大能改下吗?

發布時間:2025/3/19 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二级python 刷题就能过吗_Python 刷题笔记:这很不python,官方大大能改下吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

驚訝:數值相等的整數或浮點數作為dict 字典的鍵將指向同一項?!

1、刷題遇到知識盲區

今天繼續在 xue.cn 刷題,意外發現:整數和浮點數先后設為字典的鍵,會有奇怪的現象!

題目如下:

What gets printed?

confusion = {}

confusion[1] = 1

confusion['1'] = 2

confusion[1.0] = 4

sum = 0

for k in confusion:

sum += confusion[k]

print(sum)

復制代碼

2、我的理解VS正確答案

暫時找不到精準詞匯來描述這一現象,我于是選擇寫點代碼,嘗試確認該現象。

答題時我的理解是,整數 1 ,字符串 '1' 和浮點數 1.0 是不同類型,所以它們會成為該字典的三個鍵,字典中 3 項的值加和 1 + 2 +4 為 7。但正確答案卻是 2 + 4 為 6。由此推論,這是把字典的鍵 整數 1 和 浮點數 1.0 所指向的視為同一項!

這個推論準確嗎?如何驗證推論是否準確?

首先,確認整數和浮點數都可以作為字典的鍵存在。

其次,數值相等的整數和浮點數先后作為字典的鍵時,會如何?寫寫代碼試試看。

仔細觀察發現,字典的鍵不會發生改變,字典的值發生覆蓋:最先設為字典的鍵的類型,如果是整數,則總是整數,如果是浮點數,則總是浮點數。只有字典的值會發生覆蓋。

這個觀察準確嗎?再寫點代碼,檢查下字典的鍵的類型是否發生變化。

經過上面的探索可知,數學意義上數值相等的整數或浮點數先后設為字典的鍵時,鍵的類型會與最初保持一致;但在調用該鍵時,整數或浮點數都可以,指向的是該字典的同一項!

3、小結與未完成困惑

這實在詭異。我雖然暫時不明白為什么,但總算確定該現象的存在了!整理好這篇筆記,發出來給高手們指點一下,看看能否找到為什么吧!

BTW,這個現象不符合認知慣性啊,明明整數 1 ,字符串 '1' 和浮點數 1.0 是不同類型,為什么它們不會成為該字典的三個鍵??希望未來 python 能升級改掉這種情況……

總結

以上是生活随笔為你收集整理的二级python 刷题就能过吗_Python 刷题笔记:这很不python,官方大大能改下吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。