亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

python 的 set 和其他語言類似, 是一個無序不重復(fù)元素集, 基本功能包括關(guān)系測試和消除重復(fù)元素。set 和 dict 類似,但是 set 不存儲 value 值的。

1、set 的創(chuàng)建

創(chuàng)建一個 set,需要提供一個 list 作為輸入集合

set1=set([123,456,789])
print(set1)

輸出結(jié)果:

{456, 123, 789}

傳入的參數(shù) [123,456,789] 是一個 list,而顯示的 {456, 123, 789} 只是告訴你這個 set 內(nèi)部有 456, 123, 789 這 3 個元素,顯示的順序跟你參數(shù)中的 list 里的元素的順序是不一致的,這也說明了 set 是無序的。

還有一點,我們觀察到輸出的結(jié)果是在大括號中的,經(jīng)過之前的學(xué)習(xí),可以知道,tuple (元組) 使用小括號,list (列表) 使用方括號, dict (字典) 使用的是大括號,dict 也是無序的,只不過 dict 保存的是 key-value 鍵值對值,而 set 可以理解為只保存 key 值。

回憶一下,在 dict (字典) 中創(chuàng)建時,有重復(fù)的 key ,會被后面的 key-value 值覆蓋的,而 重復(fù)元素在 set 中自動被過濾的。

set1=set([123,456,789,123,123])
print(set1)

輸出的結(jié)果:

{456, 123, 789}

2、set 添加元素

通過 add(key) 方法可以添加元素到 set 中,可以重復(fù)添加,但不會有效果

set1=set([123,456,789])
print(set1)
set1.add(100)
print(set1)
set1.add(100)
print(set1)

輸出結(jié)果:

{456, 123, 789}
{456, 123, 100, 789}
{456, 123, 100, 789}

3、set 刪除元素

通過 remove(key) 方法可以刪除 set 中的元素

set1=set([123,456,789])
print(set1)
set1.remove(456)
print(set1)

輸出的結(jié)果:

{456, 123, 789}
{123, 789}

4、set 的運用

因為 set 是一個無序不重復(fù)元素集,因此,兩個 set 可以做數(shù)學(xué)意義上的 union(并集), intersection(交集), difference(差集) 等操作。

edac59887302095e82b950a78cdc3c1.png

例子:

set1=set('hello')
set2=set(['p','y','y','h','o','n'])
print(set1)
print(set2)
# 交集 (求兩個 set 集合中相同的元素)
set3=set1 & set2
print('\n交集 set3:')
print(set3)
# 并集 (合并兩個 set 集合的元素并去除重復(fù)的值)
set4=set1 | set2
print('\n并集 set4:')
print(set4)
# 差集
set5=set1 - set2
set6=set2 - set1
print('\n差集 set5:')
print(set5)
print('\n差集 set6:')
print( set6)
# 去除海量列表里重復(fù)元素,用 hash 來解決也行,只不過感覺在性能上不是很高,用 set 解決還是很不錯的
list1 = [111,222,333,444,111,222,333,444,555,666]  
set7=set(list1)
print('\n去除列表里重復(fù)元素 set7:')
print(set7)

運行的結(jié)果:

{'h', 'l', 'e', 'o'}
{'h', 'n', 'o', 'y', 'p'}
交集 set3:
{'h', 'o'}
并集 set4:
{'h', 'p', 'n', 'e', 'o', 'y', 'l'}
差集 set5:
{'l', 'e'}
差集 set6:
{'p', 'y', 'n'}
去除列表里重復(fù)元素 set7:
{555, 333, 111, 666, 444, 222}
繼續(xù)學(xué)習(xí)