1. 程式人生 > >封裝和解構、集合、字典的簡介

封裝和解構、集合、字典的簡介

tro 定義 per 不重復 diff 初始化 對象 for 名稱

封裝和解構

封裝
    將多個值使用逗號分割,組合在一起
    本質上返回一個元組,只是省略了小括號
    t1 = (1,2)   #定義為元組
    t1 = 1,2    #將1和2封裝成元組
解構
    把線性結構的元素解開,並順序的值賦給其他變量
    左邊接納的變量數要和右邊解開的元素個數一致

集合set
set 翻譯為集合 collection 翻譯為集合類型,是一個大概念
set 是可變的、無序的、不重復的元素集合
set可以叠代 , 元素不可以索引
set 的元素要求必須可hash

不可hash的類型有: list、set、bytearray、dict
可hash的類型有 :int、tuple、bytes,string、none、bool、complex

set修改 ( 要麽刪除,要麽加入新的元素)

增加
add(elem)        update(others) 
 刪除
remove(elme)    discard(elem)    pop()  -->item        clear()     

集合

並集  union(others)       |   ;  update(others)     |=
交集 intersecton(others)     &    ;    intersectionupdate(others)    &=
差集  difference(others)    -   ;       differentupdate(others)   -=
對稱差集 symmetricdifferece(other)    ^   ;    symmetricdifferenceupdate(other)  ^=
issubset(other) 、<=   判斷當前集合是否是另一個集合的子集
set1  <  set2       判斷set1是否是set2的真子集
issuperse(other)  、 >=   判斷當前集合是否是other的超集
set1  >  set2       判斷set1是否是set2的真超集
isdisjoint(other)   當前集合和另一個集合沒有交集,如果沒有交集返回True*

字典dict

key - value 鍵值對的數據的集合
可變的 、無序的、key不重復

定義、初始化

d = {}或者 d = dict()
dict(kwargs)  使用name = value 對初始化一個字典
    dict(iterable,kwarg)  使用可叠代對象和name = value 對構造字典,不過可叠代對象必須是一個二元結構  d = dict(((1,‘a‘),(2,‘b‘)))  或者 d = (2,‘b‘])([1,‘a‘],[)
dict(mapping,kwarg)使用一個字典構造另一個字典
d = {‘a‘:10,‘b‘:20,‘c‘:None,‘d‘:[1,2,3]
類方法 d = dict.fromkeys(iterable,value)

字典元素的訪問

d[key]    
get(key[,default])
setdefault(key[,default]) 

字典增加和修改

d[key] = value 將key對應的值該為value,key不存在添加新的Kv對
update([other])->None   使用另一個字典的Kv對更新本字典,key不存在就添加,key存在覆蓋key對應的值,就地修改

字典刪除

pop(key[,defalut])  
popitem()  移除並返回任意一個鍵值對,字典為empty,拋出KeyError異常
clear()   清空字典
del語句       實際上刪除的是名稱(一個對象的引用)而不是對象

字典遍歷

for ... in dict:
遍歷key
遍歷value
遍歷item,即kv對

封裝和解構、集合、字典的簡介