python高級教程之set數據結構


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'])
相關文章
相關標籤/搜索