1. 程式人生 > >Python學習之旅(九)

Python學習之旅(九)

Python基礎知識(8):集合

集合:由不同元素組成,無序的,不重複的序列

補充知識:可變型別:列表、字典;不可變型別:數字、字串、元組

使用大括號{}或set()方法定義集合

se=set("hello")
se

結果:

{'e', 'o', 'l', 'h'}

可以使用set方法對列表進行去重

注:建立一個空集合必須用 set() 而不是 { }, { } 是用來建立一個空字典。

定義不可變字元要用frozenset方法,用add、remove、update方法無法改變frozenset定義的集合

集合的運算

交集&、並集|、補集(差集)-、對稱補集^、子集<、超集(父集)>

交集 & 
並集 | 
補集(差集) - 
對稱補集 ^ 
子集 < 
超集(父集) >

1、intersection:求交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.intersection(s2)

結果:{2, 4}

2、union:求並集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.union(s2)

結果:

{1, 2, 3, 4, 7, 9, 10}

3、difference:求差集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.difference(s2)
結果:
{1, 3}
s2.difference(s1)
結果:
{9, 10, 7}

4、symmetric_difference:交叉並集

交叉並集可以看做並集減去交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.symmetric_difference(s2)

結果:

{1, 3, 7, 9, 10}

集合方法

1、add:新增元素

2、clear:清除元素

3、copy:複製

4、pop:隨機移除元素

5、remove:移除指定元素,若元素不存在則報錯

6、discard:刪除元素,若元素不存在不會報錯

7、difference_update:求出差集後並對該集合進行更新

8、intersection_update:求出交集後並對該集合進行更新

9、isdisjoint:判斷兩個集合是否包含相同的元素,包含返回False,否則返回True

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.isdisjoint(s2)

結果:False

10、issubset:判斷一個集合的元素是否都在另一個集合中

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s1.issubset(s3)

結果:True

11、issuperset:判斷一個集合的元素是否包含另一個集合中的所有元素

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s3.issuperset(s1)

結果:True

12、symmetric_difference_update:求出交叉並集後並對該集合進行更新

13、update:對多個元素進行更新