標籤:
本節我們將學習python的另一種資料類型:集合(set)
1.集合(set)
集合在Python中是一種沒有重複元素,且無序的資料類型,且不能通過索引來引用集合中的元素
>>> basket = [‘apple‘, ‘orange‘, ‘apple‘, ‘pear‘, ‘orange‘, ‘banana‘]>>> set(basket)set([‘orange‘, ‘pear‘, ‘apple‘, ‘banana‘])
set1-set2來獲得在set1中的元素在set2中不存在的元素,返回一個新的集合。該功能和set1.difference(set2)的效果一樣
>>> f=set([1,2,3,4,5])>>> c=set([3,4,5,6])>>> f.difference(c)set([1, 2])>>> list(f)[1, 2, 3, 4, 5]>>> f-cset([1, 2])
set1|set2 獲得在set1或set2中的元素,返回一個新的集合
>>> f=set([1,2,3,4,5])>>> c=set([3,4,5,6])>>> f|cset([1, 2, 3, 4, 5, 6])
set1&set2 獲得在set1和set2中均存在的元素,返回一個新的集合
>>> f=set([1,2,3,4,5])>>> c=set([3,4,5,6])>>> f&cset([3, 4, 5])
set1^set2 獲得在set1或set2中存在,但不包括在set1和set2中都存在的元素,返回一個新的集合
>>> f=set([1,2,3,4,5])>>> c=set([3,4,5,6])>>> f^cset([1, 2, 6])
2.集合的函數
set.add(x) 新增一個元素x,如果集合中已經存在x,則不會新增到集合中
>>> f=set([3,4,5,6])>>> f.add(‘a‘)>>> fset([‘a‘, 3, 4, 5, 6])>>> f.add(‘a‘)>>> fset([‘a‘, 3, 4, 5, 6])
set.clear()清空集合
>>> f=set([3,4,5,6])>>> f.clear()>>> fset([])
set.copy()複製一個集合
>>> f=set([3,4,5,6])>>> s=f.copy()>>> sset([3, 4, 5, 6])
set1.difference(set2) 獲得在set1中的元素在set2中不存在的元素,返回一個新的集合.與set1-set2相同
>>> f=set([3,4,5,6])>>> s=set([1,2,3,4,5])>>> s.difference(f)set([1, 2])
set1.difference_update(set2) 更新set1,使set1=set1-set2
>>> s=set([1,2,3,4,5])>>> s.difference_update(f)>>> sset([1, 2])
set.discard(x) 刪除集合中值為x的元素
>>> s=set([1,2,3,4,5])>>> s.discard(3)>>> sset([1, 2, 4, 5])
set1.intersection(set2) 返回set1和set2中均存在的元素,與set1&set2的效果相同
>>> f=set([3,4,5,6])>>> s=set([1,2,3,4,5])>>> f.intersection(s)set([3, 4, 5])
set1.intersection_update(set2) 更新set1,使set1等於set1^set2
>>> f=set([3,4,5,6])>>> s=set([1,2,3,4,5])>>> f.intersection_update(s)>>> fset([3, 4, 5])
set1.isdisjoint(set2) 判斷set1與set2是否有相同的元素,如果有,返回false,沒有返回true
>>> f=set([3,4,5,6])>>> s=set([1,2,3,4,5])>>> q=set([1,0])>>> f.isdisjoint(s)False>>> f.isdisjoint(q)True
set1.issubset(set2)判斷set1是否是set2的子集,如果是,返回true,否則返回false
>>> f=set([1,2])>>> q=set([3,4,5,6,7])>>> s=set([1,2,3,4,5])>>> f.issubset(q)False>>> f.issubset(s)True
set1.issuperset(set2)判斷set1是否包含了set2,即set2是否是set1的子集,如果是,返回true,否則返回false
>>> f=set([1,2])>>> s=set([1,2,3,4,5])>>> f.issuperset(s)False>>> s.issuperset(f)True
Python學習筆記 (第8課)