課程
/后端開發
/Python
/初識Python
s=set([('a',1),('b',2),('c',3)])
可以看到set里面有三個tuple,但是我們知道tuple里面是允許有list的,這樣是不是set里面也可以有list;
2018-08-08
源自:初識Python 6-9
正在回答
雖然傳入的是List,但是在里面不能再加list了。
set后面小括號里的list是傳遞給set的參數,并不表示set返回的集合中包含了這個list,只是包含了這個list中的不重復的元素。
set的元素不能重復,為了保證不重復,set的元素必須是不可變的,而list的可變的,所以set里不能有list。反證法解釋一下,假如 set里可以有list,則
L1 = [1,2,3]
L2 = [1,2]
s = set([L1,L2])? ?
s里有[1,2,3]與[1,2] 兩個list,由于list的可變的,如果執行
L1.pop()
L1變為[1,2]? 和 L2 的值一樣了
?s里就有重復的元素了,與set的定義相悖,所以set里不可以有list。
梁伊
s?=?set([1,2,3]) print(s) s.add("b") print(s)
看結果就知道,可以有list
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-08-25
雖然傳入的是List,但是在里面不能再加list了。
2018-08-15
set后面小括號里的list是傳遞給set的參數,并不表示set返回的集合中包含了這個list,只是包含了這個list中的不重復的元素。
2018-08-08
set的元素不能重復,為了保證不重復,set的元素必須是不可變的,而list的可變的,所以set里不能有list。反證法解釋一下,假如 set里可以有list,則
L1 = [1,2,3]
L2 = [1,2]
s = set([L1,L2])? ?
s里有[1,2,3]與[1,2] 兩個list,由于list的可變的,如果執行
L1.pop()
L1變為[1,2]? 和 L2 的值一樣了
?s里就有重復的元素了,與set的定義相悖,所以set里不可以有list。
2018-08-08
看結果就知道,可以有list