一哨坪、集合概念
- 集合(set)是一個(gè)無序的不重復(fù)元素序列咬腋。
- 可以使用大括號
{ }
或者set()
函數(shù)創(chuàng)建集合仓手,注意:創(chuàng)建一個(gè)空集合必須用set()
而不是{ }
,因?yàn)?{ }
是用來創(chuàng)建一個(gè)空字典业踢。
集合的唯一性栗柒,無序性和確定性。
二知举、創(chuàng)建集合
用法:
# 創(chuàng)建保存多個(gè)元素的集合
parame = {value01, value02, ...}
# 創(chuàng)建一個(gè)空集合
set(value)
示例:
sets = {1, 2, 3, 4, 5}
三瞬沦、操作集合
- 添加單個(gè)元素
sets.add(6)
print(sets)
add()將元素 x 添加到集合 s 中,如果元素已存在雇锡,則不進(jìn)行任何操作逛钻。
- 添加多個(gè)元素
sets.update([7, 8])
print(sets)
update()可以添加元素,且參數(shù)可以是列表锰提,元組曙痘,字典等芳悲。x 可以有多個(gè),用逗號分開边坤。
- 移除元素
# 移除存在的元素
sets.remove(2)
# 移除不存在的元素
sets.remove(9)
# KeyError: 9
print(sets)
remove()將元素 x 從集合 s 中移除名扛,如果元素不存在,則會發(fā)生錯誤茧痒。
# 移除存在的元素
sets.discard(1)
# 移除不存在的元素
sets.discard(10)
discard()也是移除集合中的元素肮韧,且如果元素不存在,不會發(fā)生錯誤旺订。
sets.pop()
print(sets)
pop()隨機(jī)刪除集合中的一個(gè)元素弄企。
set 集合的 pop 方法會對集合進(jìn)行無序的排列,然后將這個(gè)無序排列集合的左面第一個(gè)元素進(jìn)行刪除耸峭。
- 計(jì)算集合元素個(gè)數(shù)
print(len(sets))
len()計(jì)算集合中某個(gè)元素的個(gè)數(shù)桩蓉。
四、清空集合
sets.clear()
print(sets)
clear()清空指定的集合劳闹。
五、判斷元素是否在集合中存在
x in sets
in判斷元素 x 是否在集合 sets 中洽瞬,存在返回 True本涕,不存在返回 False。
六伙窃、集合內(nèi)置方法
- add():為集合添加元素菩颖。
- clear():移除集合中的所有元素。
- copy():拷貝一個(gè)集合为障。
- difference():返回多個(gè)集合的差集晦闰。
- discard():刪除集合中指定的元素。
- intersection():返回集合的交集鳍怨。
- isdisjoint():判斷兩個(gè)集合是否包含相同的元素呻右,如果沒有返回 True,否則返回 False鞋喇。
- issubset():判斷指定集合是否為該方法參數(shù)集合的子集声滥。
- issuperset():判斷該方法的參數(shù)集合是否為指定集合的子集。
- pop():隨機(jī)移除元素侦香。
- remove():移除指定元素落塑。
- symmetric_difference():返回兩個(gè)集合中不重復(fù)的元素集合。
- union():返回兩個(gè)集合的并集罐韩。
- update():給集合添加元素憾赁。
七、集合實(shí)例講解
以下代碼在交互環(huán)境下運(yùn)行:
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 這里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判斷元素是否在集合內(nèi)
True
>>> 'crabgrass' in basket
False
>>> # 下面展示兩個(gè)集合間的運(yùn)算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不同時(shí)包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}