Python——數據類型之set

 本篇主要內容函數

• set集合的特色spa

• set集合的創建code

• set集合的17個內置函數blog

• set集合的數學運算符號rem

一、set集合類型的特色。

一、無序字符串

二、不一樣元素數學

三、元素必須不可變。(數字,字符串,元組都屬於不可變的,列表,字典屬於可變的。)hash

二、set集合的創建

a={'Albert', 'QQ','XP'}
print(type(a),a)

輸出io

<class 'set'> {'Albert', 'QQ', 'XP'}

元素不可爲可變數據類型ast

a={'Albert', 'QQ','XP',(1,2,3)}
print(a)
b={'Albert', 'QQ','XP',[1,2,3]}
print(b)

輸出

{'XP', (1, 2, 3), 'Albert', 'QQ'}
Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/temp.py", line 12, in <module>
    b={'Albert', 'QQ','XP',[1,2,3]}
TypeError: unhashable type: 'list'

也能夠這樣新建一個集合

a=set(['Albert', 'QQ','XP'])
print(a)

輸出

{'Albert', 'QQ', 'XP'}

也就是遍歷元素生成一個集合。

三、set的內置函數方法

(1)add(self, *args, **kwargs):這很簡單的往集合裏面放元素。

a=set(['Albert', 'QQ','XP'])
a.add('yzp')
print(a)

輸出

{'XP', 'Albert', 'QQ', 'yzp'}

從輸出能夠看出來集合裏面元素的存放是無序的。

注:一次只能加一個不可變元素。

(2)clear(self, *args, **kwargs):清空整個集合

(3)copy(self, *args, **kwargs):複製一個如出一轍的集合(仍是b=a與b=a.copy()的區別)

(4)difference(self, *args, **kwargs):獲得多個集合的差集。

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference(b))

輸出

{'Albert'}

直白的說就是a有而b沒有的。

(5)difference_update(self, *args, **kwargs):求差集並更新這個集合

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference_update(b))
print(a)

輸出

None
{'Albert'}

(6)discard(self, *args, **kwargs):刪除集合裏面的指定元素,若是不存在這個元素,什麼也不作(不報錯)

a={'Albert', 'QQ','XP'}
a.discard('QQ')
print(a)

輸出

{'XP', 'Albert'

(7)intersection(self, *args, **kwargs):求交集

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection(b))

輸出

{'QQ', 'XP'}

通俗的來講就是ab都有的

(8)intersection_update(self, *args, **kwargs):求集並更新集合

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection_update(b))
print(a)

輸出

None
{'XP', 'QQ'}

(9)isdisjoint(self, *args, **kwargs):若是交集爲空,返回true

a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.isdisjoint(b))

輸出

False

(10)issubset(self, *args, **kwargs),判斷是否是被包含。

a={ 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.issubset(b))

輸出

True

(11)issuperset(self, *args, **kwargs):判斷是否是包含

a={ 'Albert','QQ','XP'}
b={'QQ','XP'}
print(a.issuperset(b))

輸出

True

(12)pop(self, *args, **kwargs):隨機刪除一個元素,若是集合爲空,則報錯KeyError

a={ 'Albert','QQ','XP'}
a.pop()
print(a)

輸出

{'QQ', 'XP'}

 (13)remove(self, *args, **kwargs):刪除指定元素,元素不存在則報錯KeyError

a={ 'Albert','QQ','XP'}
a.remove('Albert')
print(a)
a.remove('yzp')

輸出

{'QQ', 'XP'}
Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/temp.py", line 13, in <module>
    a.remove('yzp')
KeyError: 'yzp'

 (14)symmetric_difference(self, *args, **kwargs):求交叉補集

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.symmetric_difference(b))

 

輸出

{'Albert', 'yzp'}

 

(15)symmetric_difference_update(self, *args, **kwargs):求交叉補集並更新集合

(16)union(self, *args, **kwargs):求並集

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.union(b))

 

輸出

{'XP', 'QQ', 'yzp', 'Albert'}

 

(17)update(self, *args, **kwargs):更新集合。也就是求並集並更新這個集合

 

a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
a.update(b)
print(a)

 

輸出

{'yzp', 'Albert', 'QQ', 'XP'}

 四、數學運算符

求交集 a&b

求並集 a|b

求差集 a-b,或者b-a

求交叉補集 a^b

a={1,2,3}
b={2,3,4}
print(a&b)
print(a|b)
print(a-b)
print(b-a)
print(a^b)

 

輸出

{2, 3}
{1, 2, 3, 4}
{1}
{4}
{1, 4}
相關文章
相關標籤/搜索