Python 關於set的疑問

時間 2021-05-31 12:48:17

1樓:靈劍

從內部邏輯上來講都是通過hash表來實現的,所以許多特性是高度相似的,比如可以O(1)查詢是否存在某個值。實際上用key和value相同的字典也可以替代set,但是set作為乙個專用的資料型別會更方便。

set是個類,它的建構函式接受乙個序列作為引數,list只是序列的一種寫法,你用tuple也是可以的:

set((1,2,3))

用dict也是可以的:

set()

當然用別的set也可以。這跟list接受乙個序列作為引數來構造乙個新的列表、tuple接受乙個序列作為引數來構造乙個新的元組、dict接受乙個key-value對的序列作為引數來構造乙個新的字典是一致的。

至於顯示的格式,是因為set以前沒有專門的語法,而Python希望repr返回的結果可以通過eval重新變回原來的值,所以選了這樣的顯示方式。

2樓:

早期的python沒有set,只有dict、list、tuple,正好把大中小括號全給用了。等後來有了明確的set,不好表示了,只好用set([...])這種先表示成list,再轉換成set的方法。

從資料邏輯上說,set確實可以看成只有key的dict,所以從python2.7開始,支援用這樣的方式表示set。

3樓:

dict要求key不能重複,且是無序的,set中的元素值也是不重複的無序的,而list不是這樣的,list是有序列表其元素值可以相同。

有什麼結構能比list更適合作為set的引數?

方括號怎麼不是表示列表的啦?檢視物件是呼叫其的str()方法,或者repr()方法?str方法返回給人看的表示,repr方法返回給python看的表示,repr方法返回的字串可以用eval再得到值相同的物件,而str方法返回的字串有可能就不是合法python表示式。

貌似set型別的str與repr一樣。

隨便一寫,等神的答案

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

長風風 python的set中元素必須是unhashable 不可修改的 因此,可以修改的list就不能作為元素放入set中。元組,字串,整數,浮點都不可變,可以放入set中。而list,字典等放入則會報錯。放入不可變的元素 此外,python支援將list轉化為set,但會過濾掉重複出現的元素。 ...

關於《飄》的疑問?

喬太太 媚蘭和艾希禮都是把諾言 忠誠 情誼 榮譽看的比生命還重要的人。而思嘉和白瑞德都是實事求是的人,不會理會不切實際的榮譽與犧牲,也不會過高的相信什麼人性。思嘉和艾希禮根本就不是一類人,他們是兩個世界的人。像思嘉這樣熱情 勇敢 固執又容易衝動的人,對艾希禮的感情實際上一直都是一直求而未得的遺憾,倘...

關於「邪淫」的疑問

慧覺真實義 佛說大乘無量壽莊嚴清淨平等覺經 若多事物,不能離家,不暇大修齋戒,一心清淨。有空閒時,端正身心。絕欲去憂。慈心精進。不當嗔怒 嫉妒。不得貪餮慳惜。不得中悔。不得狐疑。要當孝順。至誠忠信。當信佛經語深。當信作善得福。奉持如是等法,不得虧失。思惟熟計,欲得度脫。晝夜常念,願欲往生阿彌陀佛清淨...