生活随笔
收集整理的這篇文章主要介紹了
集合set
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
set 顧明思義,就是個集合,集合的元素是唯一的,無序的。一個{ }里面放一些元素就構成了一個集合,set里面可以是多種數據類型(但不能是列表,集合,字典,可以是元組)
set 的創建:
[python]?view plaincopy
>>>?L1?=?[1,1,2,4,3]?? >>>?T1?=?(2,4,6,6,6,7)?? >>>?s?=?{1}?? >>>?type(s)?? <class?'set'>?? >>>?s?=?set(L1)??? >>>?s?? {1,?2,?3,?4}?? >>>?s?=?set(T1)??? >>>?s?? {2,?4,?6,?7}?? >>>?s?=?{1,2.3,'a'}??
set 基本函數與操作:
s.add( x ) 將元素 x 添加到集合s中,若重復則不進行任何操作
[python]?view plaincopy
>>>?s?=?{1,2,'a'}?? >>>?s.add('b')?? >>>?s?? {1,?'a',?2,?'b'}?? >>>?s.add(1)?? >>>?s?? {1,?'a',?2,?'b'}??
s.update( x ) 將集合 x 并入原集合s中,x 還可以是列表,元組,字典等,x 可以有多個,用逗號分開
[python]?view plaincopy
>>>?s?? {1,?'a',?2,?'b'}?? >>>?s.update({1,3})?? >>>?s?? {1,?'a',?3,?'b',?2}?? >>>?s.update([1,4])?? >>>?s?? {1,?'a',?3,?4,?'b',?2}?? >>>?s.update(1)?? Traceback?(most?recent?call?last):?? ??File?"<pyshell#264>",?line?1,?in?<module>?? ????s.update(1)?? TypeError:?'int'?object?is?not?iterable??
s.discard( x )將 x 從集合s中移除,若x不存在,不會引發錯誤
[python]?view plaincopy
>>>?s?? {1,?'a',?3,?4,?'b',?2}?? >>>?s.discard(1)?? >>>?s?? {'a',?3,?4,?'b',?2}?? >>>?s.discard(1)?? >>>?s?? {'a',?3,?4,?'b',?2}??
s.remove( x ) 將 x 從集合s中移除,若x不存在,會引發錯誤
[python]?view plaincopy
>>>?s?? {'a',?3,?4,?'b',?2}?? >>>?s.remove('a')?? >>>?s?? {3,?4,?'b',?2}?? >>>?s.remove('a')?? Traceback?(most?recent?call?last):?? ??File?"<pyshell#273>",?line?1,?in?<module>?? ????s.remove('a')?? KeyError:?'a'??
s.pop() 隨機刪除并返回集合s中某個值,注意,因為set是無序的,不支持下標操作,沒有所謂的最后一個,pop()移除隨機一個元素,這和其他數據結構不同
[python]?view plaincopy
>>>?s?? {3,?4,?'b',?2}?? >>>?s.pop()?? 3??
s.clear() 清空
len(s) set支持len操作
[python]?view plaincopy
>>>?s?=?{1,2,3}?? >>>?len(s)?? 3??
?
x in s ?set同樣支持in操作
[python]?view plaincopy
>>>?s?? {4,?'b',?2}?? >>>?1?in?s?? False?? >>>?2?in?s?? True??
s.union( x ) 返回s與集合x的交集,不改變原集合s,x 也可以是列表,元組,字典。
[python]?view plaincopy
>>>?s1?=?{1,2,3}?? >>>?s2?=?{'a','b'}?? >>>?s1.union(s2)?? {1,?2,?3,?'a',?'b'}?? >>>?s1?? {1,?2,?3}??
s.intersection( x )?返回s與集合x的并集,不改變s, x 也可以是列表,元組,字典。
[python]?view plaincopy
>>>?s1?? {1,?2,?3}?? >>>?s2?? {2,?3,?4}?? >>>?s1.intersection(s2)?? {2,?3}?? >>>?s1?? {1,?2,?3}??
s.difference( x )返回在集合s中而不在集合 x 中的元素的集合,不改變集合s, x 也可以是列表,元組,字典。
[python]?view plaincopy
>>>?s1?? {1,?2,?3}?? >>>?s2?? {2,?3,?4}?? >>>?s1.difference(s2)?? {1}?? >>>?s1?? {1,?2,?3}??
s.symmetric_difference( x ) 返回s和集合x的對稱差集,即只在其中一個集合中出現的元素,不改變集合s, x 也可以是列表,元組,字典。
[python]?view plaincopy
>>>?s1?? {1,?2,?3}?? >>>?s2?? {2,?3,?4}?? >>>?s1.symmetric_difference(s2)?? {1,?4}?? >>>?s1?? {1,?2,?3}??
s.issubset( x ) 判斷 集合s 是否是 集合x 子集
s.issuperset( x ) 判斷 集合x 是否是集合s的子集
[python]?view plaincopy
>>>?s1?=?{1,2,3}?? >>>?s2?=?{1,3}?? >>>?s2.issubset(s1)?? True?? >>>?s1.issubset(s2)?? False?? >>>?s1.issuperset(s2)?? True??
求交集,并集,差集,對稱差集的另一種方法:
[python]?view plaincopy
>>>?s1?=?{1,2,3,'a'}?? >>>?s2?=?{3,4,'b'}?? >>>?s1?&?s2???? {3}?? >>>?s1?|?s2????? {1,?'a',?3,?4,?'b',?2}?? >>>?s1?-?s2???? {1,?'a',?2}?? >>>?s1?^?s2???? {1,?2,?4,?'b',?'a'}??
{ } 在布爾運算中表示 False,其他均為 True
總結
以上是生活随笔為你收集整理的集合set的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。