1. 程式人生 > 實用技巧 >Python之集合定義和基本操作方法

Python之集合定義和基本操作方法

1. 定義:由 (不同元素) 組成的集合,其中是一組無序的可hash的值,可以作為字典的key

2. 特性:將不同的值放到一起,不同的集合間來做關係運算,集合中的元素必須是不可變型別,沒有重複的元素

set方法:
s = {1,3,6,'test',3,4,2,}
print(s,type(s))
結果:{1, 2, 3, 4, 6} <class 'set'>
m = set('hello')  -- 使用set,可在裡面傳入列表,將其遍歷轉換成集合
print(m)
結果:{'l', 'e', 'o', 'h'}
s.add('3')  add只能更新一個值
s.add(3)
print(s)
結果:{1, 2, 3, 4, 6, '3'}

s.clear()  - 清空集合
s.copy()  - 淺拷貝
s.pop()  - 隨機刪除
s.remove('test')  - 刪除指定的值,若傳入的值不存在會報錯
s.discard('test')  - 刪除指定的值,若傳入值不存在 也不會報錯

s= {3,4}
s.update((1,2))  更新集合
print(s)
結果:{1, 2, 3, 4}

將集合設定成不可變型別:
s = frozenset('hello')
print(s)
結果:frozenset({'l', 'o', 'e', 'h'})

3. 集合的交 ,差,並集,交差補集,空集,子集,父集

求交集和並集:
s1 = {1,3,6,4,2,}
s2 = {1,5,7,6,2,8,}
print(s1 & s2)
print(s1 | s2) 結果:
{1, 2, 6}
{1, 2, 3, 4, 5, 6, 7, 8}
求差集:
print(s1 - s2)
print(s2 - s1)
結果:
{3,4}
{8,5,7}
求交差補集:
print(s1 ^ s2)
結果:{3, 4, 5, 7, 8}

交集為空返回True:
s3 = {1,2}
s4 = {3,4}
print(s3.isdisjoint(s4))
結果:True

子集(s4是s3的子集,則返回True):
s3 = {1,2,3,4}
s4 = {3,4}
print(s4.issubset(s3))
結果:True

父集(s3是s4的父集,則返回True):
s3 = {1,2,3,4}
s4 = {3,4}
print(s3.issuperset(s4))
結果:True