python的set裡面可以存放list嗎?

時間 2021-09-21 03:25:25

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 如果真的是無損耗無衰減的話,那麼恭喜你,這條一光年長的環形電線真的可以儲存資料。嘛,雖然說資料沒法索引,而且一光年也太長了點,存進去資料之後要等一兩年才能取出,實在是不方便。不過不管怎麼說,資料確實是存下來了。但是可惜的是,無損耗無衰減的電線是不存在的,訊號繞了一圈回來必然...