課程
/后端開發
/Python
/初識Python
有個疑問:上面課程說set存儲的元素和dict的key類似,必須是不變對象,那為什么list可以作為set()的元素,list內容不是可變的么?這里的不變是對象的指向不變?還是怎么理解
2017-02-07
源自:初識Python 6-8
正在回答
list是指針,存放的是地址,指向list內容.所以set存的是list指針(它內容的地址),地址沒有改變,改變的是地址里面的內容.
balllyh 提問者
慕粉3793584 回復 balllyh 提問者
這個list只是作為參數傳遞給set而已,生成的set中并不包含這個list
樓上的最佳答案是錯誤的。
6-3?Python中dict的特點這篇里寫到:
dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串、整數、浮點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。
6-6?Python中什么是set中寫到:
創建 set 的方式是調用 set() 并傳入一個 list,list的元素將作為set的元素請注意,上述打印的形式類似 list, 但它不是 list,仔細看還可以發現,打印的順序和原始 list 的順序有可能是不同的,因為set內部存儲的元素是無序的。
創建 set 的方式是調用 set() 并傳入一個 list,list的元素將作為set的元素
請注意,上述打印的形式類似 list, 但它不是 list,仔細看還可以發現,打印的順序和原始 list 的順序有可能是不同的,因為set內部存儲的元素是無序的。
6-8?Python之 set的特點寫到:
set存儲的元素和dict的key類似,必須是不變對象,因此,任何可變對象是不能放入set中的。
結論:
1、創建set時傳入了一個list來構建set,但并非將list本身作為set的元素,而是list的元素作為set的元素,這兩個說法是不同的。2、set的元素和dict的鍵元素,都必須是不可變對象,list不能作為這2者的(鍵)元素。
就像這里有3個盒子 必須三個盒子 但是不管盒子里裝什么東西
list作為set的元素時,list中的內容改變,但list未變,就像超市的貨架1,2,3,貨架1可能放穿的衣服,也可以放吃的東西,但是超市還是3個貨架,并沒有因此增加或減少貨架。
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-02-07
list是指針,存放的是地址,指向list內容.所以set存的是list指針(它內容的地址),地址沒有改變,改變的是地址里面的內容.
2018-08-15
這個list只是作為參數傳遞給set而已,生成的set中并不包含這個list
2017-05-01
樓上的最佳答案是錯誤的。
6-3?Python中dict的特點這篇里寫到:
6-6?Python中什么是set中寫到:
6-8?Python之 set的特點寫到:
結論:
1、創建set時傳入了一個list來構建set,但并非將list本身作為set的元素,而是list的元素作為set的元素,這兩個說法是不同的。
2、set的元素和dict的鍵元素,都必須是不可變對象,list不能作為這2者的(鍵)元素。
2017-02-07
就像這里有3個盒子 必須三個盒子 但是不管盒子里裝什么東西
2017-02-07
list作為set的元素時,list中的內容改變,但list未變,就像超市的貨架1,2,3,貨架1可能放穿的衣服,也可以放吃的東西,但是超市還是3個貨架,并沒有因此增加或減少貨架。