Python之數據結構:集合
阿新 • • 發佈:2017-06-12
ict 轉換成 創建 可變 discard 重復 如果 upper amp 一、set集合
1、集合是一個無序不重復元素集,有去重的作用
set集合類需要的參數必須是叠代器類型的,如:序列、字典等,然後轉換成無序不重復的元素集。由於集合是不重復的,所以可以對字符串、列表、元組進行去重操作。
(1)創建
s1=set(‘This is string‘) ([])
set1=set(‘python‘) 結果:set([‘h‘, ‘o‘, ‘n‘, ‘p‘, ‘t‘, ‘y‘])
s2=set([1,2,3])
s3=set((1,2,3,4,3,2)) set([1,2,3,4])
s4=set({1:2,2:3,6:6}) 字典只會把key值列表(相當於dict.keys()返回值)賦值給set set([1,2,6])
註意數值類型不能作為集合的參數,如int類型。
(2)添加元素
add() 把元素作為整體添加
update() 把元素中的子元素一個個添加
s2.add(‘abc‘) set([1,2,3,‘abc‘])
s2.update(‘abc‘) set([‘a‘,1,2,3,‘b‘,‘c‘])
(3)刪除元素
a、remove()
s2.remove(‘c‘) set ([‘a‘,1,2,3,‘b‘])
如果‘c‘不存在,會拋出異常
b、discard(value)
s2.discard(3)
c、pop()
s2.pop() 確保集合有元素,刪除的元素不確定是哪個。如果為空引發KeyError錯誤
(4)遍歷集合
for i in s2:
print i
(5)
枚舉enumerate()
for index,elem in enumerate(2):
print index,‘:‘,elem
類型轉化:
str(s2)
list(s2)
tuple(s2)
(6)清空集合
s1.clear()
(7)復制集合
s6=s2.copy()
(8)結合的長度
len(s2)
2、集合的特殊操作
(1)交集、並集、差集
s1=set([1,2,3])
s2=set([2,3,4,5])
s3=s1 & s2 交集 set([2,3])
s4=s1 | s2 並集 set([1,2,3,4,5])
s5=s1-s2 差集 在s1中但不在s2中 set([1])
s6=s1.difference(s2) s6的結果 set([1]) 同s5
(2) > 、>= < <= !=
print s1>=s2
(3)
issupperset()父集
s11=set([1,2])
print s1.issupperset(s11) Ture s1是否為s11的父集
print s1.issupperset(s2) False
issubset() 子集
s1.issubset(s2) s1是否為s2的子集
(4)in 和not in 成員運算符
if s1 in s2:
3、不可變集合 frozenset()
fs=frozenset([1,2,3])
如果試圖改變不可變集合中的元素,就會報AttributeError錯誤。
Python之數據結構:集合