Python中set的用法

pythontab發表於2017-11-03

python 的集合型別和 其他語言類似, 是一個無序不重複元素集,我在之前學過的其他的語言好像沒有見過這個型別,基本功能包括關係測試和消除重複元素.集合物件還支援union(聯合), intersection(交), difference(差)和sysmmetricdifference(對稱差集)等數學運算,和我們初中數學學的集合的非常的相似。

 

1. 先看下python 集合 型別的不重複性,這方面做一些去重處理非常的好,比如我們要處理一些資料,想把重複的資料給

去掉,然後在操作的話,可以把它轉換成集合型別,然後在由集合型別轉換成其他的型別。

a = [2,3,4,2,1]

我們最終要實現的效果是:a = [1,2,3,4]

那我們要怎麼實現呢。

1觀察下這個列表,我們發現列表裡有重複的元素存在,所以我們第一想到的就是去掉列表裡的重複元素。

a = set(a)
print a

集合a的結果是:set([1, 2, 3, 4])

下一步要實現排序,我們又想到了一個比較簡單的方法,因為集合沒有排序方法,而列表有排序的方法,所以我們們把它轉換成python 列表 的型別,呼叫列表的排序方法。

a = list(a)
a.sort()
print a

列表a的結果是:[1,2,3,4]


2. union(聯合), intersection(交), difference(差)

a = set('abcde')
b = set('bdcf')

求集合的交集:

a & b

結果是:set(['c', 'b', 'd'])

求差集:

a - b

結果是:set(['a', 'e'])

求聯合:

a|b

結果是:set(['a', 'c', 'b', 'e', 'd', 'f'])

總結:python 集合和數學的集合概念比較像,經常用在資料的去重處理和一些資料的中轉處理。


相關文章