楼主:
shala (沙罗)
2019-03-17 10:23:53我知道set是无序的集合
我想问的是
若从同一个无重复行的文字档一行行读取并一个个丢进一个空set
最后观察set中key的排列,发现每次的排列都不一样
为什么对同一个档案进行同样的操作却会得到每次都不一样的set?
set中key的顺序是如何决定的?
谢谢
作者:
djshen (djshen)
2019-03-17 14:09:00无序应该是指iterate时的顺序和丢进去的顺序不一样内部的顺序应该和hash function有关
python的set跟dict是用hash实作的 不像红黑书 无序正常
作者:
ThxThx (洗洗睡)
2019-03-17 18:19:00CPython的id以及hash实作是跟内存位置有关所以每次插进去set里面的key都会不一样
楼上大错特错。那只是 default 的 __hash__ 而已。str 的__hash__ 是基于其内容的。
作者:
ThxThx (洗洗睡)
2019-03-17 18:41:00!!str的hash原来看内容,感谢纠正不过object是看位址吧?