1. 程式人生 > >資料型別之Set集合

資料型別之Set集合

set集合

1.概述

set與dict類似,但set是一組key的集合,與dict的區別在於set不儲存value。

本質:無序且無重複元素的集合(具有自動去重的功能)。

2.set的建立

語法:
set1 = set([1, 2, 3, 4, 5])

注意:建立set需要一個list或者tuple或者dist作為輸入集合,重複的元素在set中會被自動的過濾

s1 = set([1, 2, 3, 4, 5])
print(s1)
輸出:
{1, 2, 3, 4, 5}
3.set操作
3.1 set.add()

1.可以新增重複的元素,但是不會有效果

2.add 的元素不能是列表或者字典,因為他們是可變的

s1 = set([1, 2, 3, 4, 5])
s1.add(6)
s1.add((2, 3, 4))
print(s1)
#結果
{1, 2, 3, 4, 5, 6, (2, 3, 4)}
3.2 set.update()

功能:插入整個list、tuple、字串打碎插入

注意:不能直接插入數字。

s1 = set([1, 2, 3, 4, 5])
s1.update([4,"anam","hha"])
s1.update("hello")
print(s1)
#結果
{1, 2, 3, 4
, 5, 'anam', 'l', 'o', 'h', 'e', 'hha'}
3.3 set.remove(元素)

功能:刪除元素

s1 = set([1, 2, 3, 4, 5])
s1.remove(3)
print(s1)
輸出:
{1, 2, 4, 5}
3.4 遍歷元素

語法:
for i in set :
print(i)

注意:set是無序的,因此不能通過下標獲取元素。
for index, data in enumerate(set):
​ print(index, data)
可以通過這種方式,來強行新增下標

s1 = set([1, 2, 3, 4, 5])
for i in s1:
    print(i)

for index,data in enumerate(s1):
    print(index, data)
輸出:
1
2
3
4
5
0 1
1 2
2 3
3 4
4 5
3.5 交集與並集

語法:
交集 newest = set1 & set2
並集 newest = set1 | set2

s1 = set([1, 2, 3, 4, 5])
s2 = set([4, 5, 6, 7])
s3 = s1 & s2
s4 = s1 | s2
print(s3)
print(s4)
#結果
{4, 5}
{1, 2, 3, 4, 5, 6, 7}