set(集合)是一個很是有用的數據結構。它與列表(list)的行爲相似,區別在於set不能包含重複的值。
這在不少狀況下很是有用。例如你可能想檢查列表中是否包含重複的元素,你有兩個選擇,第一個須要使用for循環,就像這樣:python
#使用for循環,檢查重複的元素 some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n','b'] dup = [] for value in some_list: if some_list.count(value)>2: if value not in dup: dup.append(value) print dup,
輸出結果:數據結構
C:\Python27\python.exe E:/python/testspider/fibon.py ['b']
但還有一種更簡單更優雅的解決方案,那就是使用集合(sets),你直接這樣作:app
#使用set函數查找重複元素 some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n','b'] dup = set([x for x in some_list if some_list.count(x)>2]) print(dup)
輸出:ide
C:\Python27\python.exe E:/python/testspider/fibon.py set(['b'])
set函數還能夠查找元素中的交集函數
#set查找交集 valid = set(['yellow','red','blue','green','black']) input_set = set(['red','brown']) print(input_set.intersection(valid))
輸出spa
C:\Python27\python.exe E:/python/testspider/fibon.py set(['red'])
set函數查找兩個元素差集code
#set查找差集 valid = set(['yellow','red','blue','green','black']) input_set = set(['red','brown']) print(input_set.difference(valid))
輸出:blog
C:\Python27\python.exe E:/python/testspider/fibon.py set(['brown'])