1樓:長風風
python的set中元素必須是unhashable(不可修改的)。
因此,可以修改的list就不能作為元素放入set中。
元組,字串,整數,浮點都不可變,可以放入set中。而list,字典等放入則會報錯。
放入不可變的元素
此外,python支援將list轉化為set,但會過濾掉重複出現的元素。
2樓:Demon
不可以的。set 其實實現就是 dict ,但只保留 key。而 dict 的 key 底層用的是 hash ,要能 hash 的才能做為 dict 的 key。
能 hash 的必須是不可變元素,這也很好理解,如果是可變的,每次 hash 出來的值都不一樣,儲存就會有問題了。
建議可以閱讀下 《流暢的 Python》這本書,裡面都有講解
3樓:古明地覺
因為set是通過雜湊表實現儲存的,對每個元素都會計算出乙個雜湊值,這個雜湊值與你元素的值有關係,這就意味著裡面的元素是不可以動態修改的,所以像列表、字典、甚至集合本身等等都不能放在集合裡,同理,也不能作為字典的key
Python 關於set的疑問
靈劍 從內部邏輯上來講都是通過hash表來實現的,所以許多特性是高度相似的,比如可以O 1 查詢是否存在某個值。實際上用key和value相同的字典也可以替代set,但是set作為乙個專用的資料型別會更方便。set是個類,它的建構函式接受乙個序列作為引數,list只是序列的一種寫法,你用tuple也...
在Python裡面怎麼可以運算出999999999 999999999,求思路?
北鯤 大數計算,其實最根本的思路就是用字串作為結果。按照計算方式,安位計算,然後把結果拼到結果的字串裡。比如25 17 結果是字串x a 5 7 12 此時2是個位的結果 x 2 記下進製1 b 2 1 3 1 4 x 4 x 42 以此類推,只要記住進製,借位,搞清計算公式就可以 貌似大部分寫Py...
如果有一根很長的資料線,裡面可以存資料嗎
ExplodingONC 如果真的是無損耗無衰減的話,那麼恭喜你,這條一光年長的環形電線真的可以儲存資料。嘛,雖然說資料沒法索引,而且一光年也太長了點,存進去資料之後要等一兩年才能取出,實在是不方便。不過不管怎麼說,資料確實是存下來了。但是可惜的是,無損耗無衰減的電線是不存在的,訊號繞了一圈回來必然...