python: set frozenset

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'])

3.frozenset 跟 set 相比是不可變的


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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章