亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python之訪問set()疑問

有個疑問:上面課程說set存儲的元素和dict的key類似,必須是不變對象,那為什么list可以作為set()的元素,list內容不是可變的么?這里的不變是對象的指向不變?還是怎么理解

正在回答

5 回答

list是指針,存放的是地址,指向list內容.所以set存的是list指針(它內容的地址),地址沒有改變,改變的是地址里面的內容.

1 回復 有任何疑惑可以回復我~
#1

balllyh 提問者

灰常感謝,說到指針立馬就明白啦 哈哈
2017-02-07 回復 有任何疑惑可以回復我~
#2

balllyh 提問者

非常感謝!
2017-02-07 回復 有任何疑惑可以回復我~
#3

慕粉3793584 回復 balllyh 提問者

沒事 相互學習
2017-02-08 回復 有任何疑惑可以回復我~

這個list只是作為參數傳遞給set而已,生成的set中并不包含這個list

0 回復 有任何疑惑可以回復我~

樓上的最佳答案是錯誤的。


6-3?Python中dict的特點這篇里寫到:

dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串、整數、浮點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。

6-6?Python中什么是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者的(鍵)元素。



1 回復 有任何疑惑可以回復我~

就像這里有3個盒子 必須三個盒子 但是不管盒子里裝什么東西

0 回復 有任何疑惑可以回復我~

list作為set的元素時,list中的內容改變,但list未變,就像超市的貨架1,2,3,貨架1可能放穿的衣服,也可以放吃的東西,但是超市還是3個貨架,并沒有因此增加或減少貨架。

0 回復 有任何疑惑可以回復我~
#1

balllyh 提問者

灰常感謝
2017-02-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758393    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

python之訪問set()疑問

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號