本文簡單總結一下python處理集合時常用的set物件,set物件中的內容是不重複的無序集合。
按照python官方教材的說法,set物件的基本使用場景是 membership testing and eliminating duplicate entries ,同時支援集合的 mathematical operations like union, intersection, difference, and symmetric difference.
建立set物件,可以使用set函式,或者大括號{},使用大括號時,內容不能為空,否則就是在建立dict物件。set函式可以輸入乙個iterable物件,用來提供set物件的內容。
>>> a = set()
>>> a
set()
>>> b = set('abcde')
>>> b
>>> c =
>>> c
>>> d =
>>> d
>>> len(a)
>>> len(b)
>>> len(c)
>>> len(d)
>>> f = set([1,2,3,4,5])
>>> f
>>> 'a' in b
true
>>> 'gg' in b
false
set物件屬於mutable,我們可以用add成員函式來增加set物件中的元素,不過如果增加重複元素,對set物件就無效了:
>>> f = set([1,2,3,4,5,6,7,8,9])
>>> id(f)
>>> f.add(999)
>>> f
>>> id(f)
>>> f.remove(5)
>>> f
>>> id(f)
>>> f.add(999)
>>> f.add(999)
>>> f.add(999)
>>> f
set物件最特別的應用,就是集合計算,下面這段是來自python官方的示例,我覺得作為基本知識很nice:
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # unique letters in a
>>> a - b # letters in a but not in b
>>> a | b # letters in a or b or both
>>> a & b # letters in both a and b
>>> a ^ b # letters in a or b but not both
如何遍歷set物件:
>>> f
>>> for it in f:
... print(it)
>>> f.add(0)
>>> for it in f:
... print(it)
set物件是是乙個集合,無序的,我們增加乙個元素後,並不能確定這個元素在遍歷的時候,出現在什麼時候。set物件的實現,肯定對內部元素有一種排序方式,不過對於使用set物件而言,這種內部的排序方式不需要知道,也是不可靠的依據,我們只需要知道無序即可。
set物件用來去重(去掉重複元素)是常用的操作,只需一行**即可搞定:
>>> a = [1,1,2,2,3,3,4,4,5,5]
>>> a
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
>>> a = list(set(a))
>>> a
[1, 2, 3, 4, 5]
>>> b = (1,1,2,2,3,3,4,4,5,5)
>>> b
(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)
>>> b = tuple(set(b))
>>> b
(1, 2, 3, 4, 5)
-- eof --
Python set 的理解與基本用法
集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者set 函式建立集合。class set iterable 引數 iterable 可迭代物件物件 返回值 新的set集合物件 1 確定性 2 無序性 3 唯一性 無重複性 x set runoob y set google x,y se...
SET命令的用法
c documents and settings huojun xu set 顯示 設定或刪除 cmd.exe 環境變數。set variable string variable 指定環境變數名。string 指定要指派給變數的一系列字串。要顯示當前環境變數,鍵入不帶引數的 set。如果命令副檔名被...
set容器的用法
所有元素都會根據元素的鍵值自動排序,set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set成員函式列表如下 begin 返回指向第乙個元素的迭代器 clear 清除所有元素 count 返回某個值元素的...