1. 程式人生 > >python 集合的相關用法

python 集合的相關用法

集合是無序的,不重複的資料型別,可以改的資料型別 (不可雜湊)但裡面的資料 不能更改(可哈西)所以說集合是不能夠作為字典的鍵

由於集合的元素不重複,所以可以用集合來消除重複元素.

s = [1,2,2,2,3,4]
s1 = set(s)
s = list(s1)
print(s) # [1,2,3,4]

集合的增

s = {1,2,3}
s.add('是啥') 
print(s)  # {'是啥', 1, 2, 3}

s.update(['沒啥'])

print(s)  # {1, 2, 3, '是啥', '沒啥'}
s.update('嘻嘻哈哈')
print(s) # {1, 2, 3, '是啥', '沒啥', '嘻', '哈'}
'''
update 為可迭代物件 物件為括號裡物件的最小元素 (str 和list 不同)
'''

集合的刪

set1 = {'alex', 'wusir', 'ritian', 'egon', 'barry'}
print(set1) 
set1.remove('alex')
print(set1) # {'wusir', 'ritian', 'barry', 'egon'}
set1 = set1.pop()
print(set1,s) # {'ritian', 'barry', 'egon'} wusir
set1.clear()
# 清空集合
del set1
#刪除集合
''' remove 指定移除物件 pop 隨機移除物件 '''

由於集合的元素不可更改,所以集合沒有 改

由於集合的元素是無序的,所以沒有集合的查

集合的其他操作

集合的交集(&     intersection ())

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)  # 交集 {4,5}
print(set1.intersection(set2))  #交集 {4,5}

集合的並集( |    union())

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)  # 並集 {1,2,3,4,5,6,7,8}
print(set1.union(set2)) # 並集 {1,2,3,4,5,6,7,8}

集合的差集(-    difference())

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set2 - set1)  # 差集 {6,7,8}
print(set1.difference(set2)) # 差集 {1,2,3}

集合的反交集(^     symmetric_difference() )

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}

print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}

集合的子集和超集( <     isssubset()       issuperset())

set1 = {1,2,3}
set2 = {1,2,3,4,5,6}

print(set1 < set2)
print(set1.issubset(set2))  # 這兩個相同,都是說明set1是set2子集。

print(set2 > set1)
print(set2.issuperset(set1))  # 這兩個相同,都是說明set2是set1超集。

集合的不可變()

s = frozenset('barry')
print(s,type(s))  # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>