字典、集合

dict

  字典,在python語言中叫字典,在其餘語言中叫鍵值對數據,關鍵字是dict,dic = {'鍵':'值'},可用來存儲數據,在數據查找中,字典的查找更快一些;字典是可變的數據類型python

***
========================================
可變數據:list,dict,set
不可變數據:int,str,bool值,tuple,元祖
========================================
***app

*****unhashable 不可哈希的,就是可變的數據;可變的數據不能哈希;spa

        不可變的數據能哈希
鍵:   必須是不可變數據類型; 並且不能重複,重複的話就會把值覆蓋;
值:   能夠隨意;
    經過鍵去查找值code

字典的增刪改查:

增:
  dic[鍵] = '值' (沒有的時候叫增)
  dic.setdefault(鍵,'')***
    先在字典中經過鍵去查有沒有值,沒有就是None
    若是有值,就不進行添加
    若是是None,就添加值對象

  (ps:字典和字典不能加,字典自己是無序的,但Python3.6版本以上字典默認有序,怎麼寫就怎麼打印)blog

刪:                    (字典中沒有remove)
  del dic 刪除整個字典
  del.[鍵] 經過鍵刪除
  dic.pop( ) 指定鍵刪除,有返回值,返回的是被刪除的值
  dic.clear( ) 清空
  dic.popitem( ) 隨機刪除;py3.6刪除最後一個,py3.5中隨機刪除rem

改:get

dic.update({'':'','':''})        更新,update括號中放一個字典

兩個字典中都沒有同樣的就是合併
    dic1 = {"11":"AA","22":"BB"}
    dic2 = {"33":"CC","44":"DD"}
    dic1.update(dic2)
    print(dic1)
    結果是dic1 = {"11":"AA","22":"BB","33":"CC","44":"DD"}  

若是被更新的內容在更新的內容中,值就會被覆蓋
    dic1 = {"11": "AA", "22": "BB"}
    dic2 = {"11":"CC","44":"DD"}
    print(dic1)    
    結果是dic1 = {"11":"CC","22":"BB","44":"DD"}


dic[鍵] = ''   ps:  字典中沒有的時候叫增,有這個鍵就是字典的改
   dic = {"11":"22","33":"44"}
   dic["11"] = ""55"
   print(dic)
   結果爲{"11":"55","33":"44"}

查:
  經過鍵查找 print(dic[鍵]) 若是鍵不存在就報錯
  print(dic.get(鍵)) 若是鍵不存在不報錯,返回None
  dic.setdefault(鍵) 不存在返回Nonehash

其餘操做:

dic = {}it

循環打印字典的鍵:
  for i in dic:或者for i in dic.keys():
  print(dic.keys)==> dict_keys(['33','66']) keys,獲取鍵,高仿列表
循環打印字典的值:
  for i in dic:或者for i in dic.values():
  print(dic.values)==> dict_values(['','']) values獲取值,高仿列表
循環打印字典的鍵值對(解構):
  for i in dic:或者for i in dic.items():
  print(dic.items) items獲取鍵值,以元祖的形式顯示
  for k,v in dic.items:
  print(k)
  print(v) 在取出鍵值對時直接作了解構

補充:  

dic.get(鍵,'提示語句')    若是沒有,就會返回提示語句   
dic.pop(鍵,'提示語句')    若是沒有,就會返回提示語句
dic3 = dict.fromkeys([1,2,3,4,5,6],'好嗨喲') 快速補充,若是不寫,默認爲None
dic3 = dict.fromkeys([1,2,3,4,5,6],[1,2,3])
dic3[3].append( ),添加的內容是全部都加
第一個參數爲鍵,是可迭代對象
第二個參數爲值,值無所謂    是由於建立新字典的值用的都是一個

集合:

例: se = {1,25,6,3,58,1,3,5,86,8,4,2,1}
  set(自然去重),存出一些數據 跟列表有點像,和字典更像(單個的)
  不能使用下標,是無序的

一行代碼去重:

  lst = [1,2,3,4,5,8,2,1,4,3,6]
  print(lst(set(lst)))

集合的增刪改查:

增:
  se.add()
  se.update() update括號中是可迭代對象
刪:
  se.pop() 集合中默認刪除第一個
  se.remove() 經過內容刪除
查詢:
  for循環

經常使用操做:

s1 = {'劉能','趙四','皮革廠'}
s2 = {'劉科長','馮鄉長','皮革廠'}
交集:    s1&s2
並集:    s1|s2    
差集:    s1-s2
反差集:    s1^s2
子集:    s1<s2
超集:    s2>s1
相關文章
相關標籤/搜索