[問題] set中key的順序是如何決定的?

作者: shala (沙羅)   2019-03-17 10:23:53
我知道set是無序的集合
我想問的是
若從同一個無重複行的文字檔一行行讀取並一個個丟進一個空set
最後觀察set中key的排列,發現每次的排列都不一樣
為什麼對同一個檔案進行同樣的操作卻會得到每次都不一樣的set?
set中key的順序是如何決定的?
謝謝
作者: Akkusaii3741 (烤雞好吃)   2019-03-17 14:01:00
我記得set裡面是隨便排欸https://reurl.cc/GjoxD 不知道有沒有用
作者: lemon651 (小明)   2019-03-17 14:05:00
你自己都說是無序了...又回來問順序...
作者: djshen (djshen)   2019-03-17 14:09:00
無序應該是指iterate時的順序和丟進去的順序不一樣內部的順序應該和hash function有關
作者: TitanEric (泰坦)   2019-03-17 14:27:00
python的set跟dict是用hash實作的 不像紅黑書 無序正常
作者: ThxThx (洗洗睡)   2019-03-17 18:19:00
CPython的id以及hash實作是跟記憶體位置有關所以每次插進去set裡面的key都會不一樣
作者: adrianshum (Alien)   2019-03-17 18:36:00
樓上大錯特錯。那只是 default 的 __hash__ 而已。str 的__hash__ 是基於其內容的。
作者: ThxThx (洗洗睡)   2019-03-17 18:41:00
!!str的hash原來看內容,感謝糾正不過object是看位址吧?
作者: HenryLiKing (HenryLiKing)   2019-03-18 10:31:00
推!!!!

Links booklink

Contact Us: admin [ a t ] ucptt.com