python1-集合set

Why - 為什么要用set?

寫了很多python的程序卻很少用到set,因為list功能太強大,大多數時候都能用list解決,就沒想到用set。實際上以后能用set最好用set
做leetcode發(fā)現需要標記visited,直接訪問過的元素丟到集合set里,再次訪問element是否in集合set來判斷是否visited或者立個visited flag也可以。

What - 什么是set?

python中set是一個無序 不重復元素集;基礎功能包括關系測試membership和消除重復元素。
set的功能類似于dict和list的中間體,sets 支持 x in set、 len(set)、和 for x in set,使用這些功能時使用set比list好。

集合set的基本操作

1.初始化

list用 [ ], set,dictionary用 { }

>>>set('hello')
set(['h', 'e', 'l', 'o'])
>>>{'h','e','l','o'}
set(['h', 'e', 'l', 'o'])
>>> test = set()

2.增刪

  • add(x) 用于增加一個元素值
>>>test.add(1)
  • update([]) 用于增加多個元素值,參數為list.
>>>test.update([1,2,3])
  • discard(x) 刪除單個元素 (不會拋出異常)
>>>test.discard(1)
  • remove(x) 刪除單個元素 (x不在,會拋出KeyError錯誤)
>>>test.remove(1)

3.集合操作

  • 并集:set.union(s),也可以用a|b計算
  • 交集:set.intersection(s),也可以用a&b計算
  • 差集:set.difference(s),也可以用a-b計算

4.包含關系

兩個集合之間一般有三種關系,相交、包含、不相交。在Python中分別用下面的方法判斷:

  • set.isdisjoint(s):判斷兩個集合是不是不相交
  • set.issuperset(s):判斷集合是不是包含其他集合,等同于a>=b
  • set.issubset(s):判斷集合是不是被其他集合包含,等同于a<=b
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容