1. 程式人生 > >關於Python集合(set)的整理

關於Python集合(set)的整理

spl PE style python 叠代 names lin ren ()

集合

  1. 不同元素組成
  2. 無序
  3. 集合當中元素必須是不可變類型(數字,字符串,元組)

集合的定義:

s = {1,2,3,3,4}

s = {‘hello’}

轉換只有可叠代對象才可以轉換

set 方法

-add #將對象添加到集合中

s ={1,2,3,4,5,6}
s.add("s")
s.add(3)
s.add(3)
print(s)
#結果:{1, 2, 3, 4, 5, 6, s, 3}

-clear

s ={1,2,3,4,5,6}
s.clear()
print(s)
#結果:set()

-copy

s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1)
#結果:{
1, 2, 3, 4, 5, 6}

-pop #隨機刪除

-remove #指定刪除

s = {sb,1,2,3,4,5,6}
s.pop()
print(s)#隨機刪除
s.remove(sb)
print(s)#指定刪除
#s.remove(‘helo‘)#刪除元素不存在,會報錯
s.discard(ssbb)#刪除元素,不存在也不會保錯
#結果:{2, 3, 4, 5, 6, ‘sb‘}
#{2, 3, 4, 5, 6}

一般方法求共同項

python_1 =[lcg,szw,zjw]
linux_1 = [lcg,szw]
python_and_linux 
= [] for p_name in python_1: if p_name in linux_1: python_and_linux.append(p_name) print(python_and_linux) #結果:[‘lcg‘, ‘szw‘]
#用集合的方式 
python_1 =[lcg,szw,zjw]
linux_1 = [lcg,szw,sb]
p_s = set(python_1)#轉換為集合
l_s =set(linux_1)
print(p_s)
技術分享圖片
 1 print(l_s)
 2 print(p_s.intersection(l_s))#
求交集 3 print(p_s&l_s) 4 5 #求並集 6 print(p_s.union(l_s)) 7 print(p_s|l_s) 8 9 #求差集 10 print("差集",p_s - l_s) 11 print("差集",l_s - p_s) 12 print(p_s.difference(l_s)) 13 14 15 ‘‘‘結果: 16 {‘lcg‘, ‘zjw‘, ‘szw‘} 17 {‘lcg‘, ‘sb‘, ‘szw‘} 18 {‘lcg‘, ‘szw‘} 19 {‘lcg‘, ‘szw‘} 20 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘} 21 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘} 22 差集 {‘zjw‘} 23 差集 {‘sb‘} 24 {‘zjw‘}‘‘‘
View Code 技術分享圖片
 1 python_1 =[lcg,szw,zjw]
 2 linux_1 = [lcg,szw,sb]
 3 p_s = set(python_1)#轉換為集合
 4 l_s =set(linux_1)
 5 #交叉補集
 6 #交叉補集
 7 print(p_s.symmetric_difference(l_s))
 8 print(p_s^l_s)
 9 結果:
10 {sb, zjw}
11 {sb, zjw}
交叉補集 技術分享圖片
 1 -differnece_update
 2 python_1 =[lcg,szw,zjw]
 3 linux_1 = [lcg,szw,sb]
 4 p_s = set(python_1)
 5 l_s = set(linux_1)
 6 print(p_s - l_s)
 7 print(p_s)
 8 p_s.difference_update(l_s)#更新求差集,更新的數據在
 9 print(p_s)
10 結果:
11 {zjw}
12 {lcg, zjw, szw}
13 {zjw}
更新求差集
s1 = {1,2,3,4}
s2 = {5,6,7}
print(s1.isdisjoint(s2))#判斷是否沒有交集,如果沒有交集則返回True
#結果:True
技術分享圖片
1 s1 = {1,2}
2 s2 = {1,2,3}
3 print(s1.issubset(s2))#是否子集的情況
4 #結果:True
-判斷s1是s2 的子集
1 print(s2.issuperset(s1))#是否是父集
2 #結果:True
s1 = {1,2}
技術分享圖片
1 #去重,在不考慮順序的情況下
2 names = ["alex","alex",wupeiqi]
3 names = list(set(names))
4 print(names)
5 #結果:[‘alex‘, ‘wupeiqi‘]
Frozenset() 冰凍集合,即不可變集合


s2 = {1,2,3}
s1.update(s2)#更新集合中的數據,可以傳入可叠代對象     
print(s1)
#結果:{1, 2, 3}

關於Python集合(set)的整理