Python全棧-第五課 學習筆記

python第五課 學習筆記

字典的初識

  • 列表的不足python

    • 列表能夠存儲大量的數據,數據之間的關聯性不強
      • ['one',19,'男','tow',18,'男']
    • 列表的查詢速度比較慢
  • 容器型數據類型:dict學習

  • 數據類型的分類(可變與不可變):code

    • 可變(不可哈希)的數據類型:list、dict、set
    • 不可變(可哈希)的數據類型:str、bool、int、tuple
  • 字典:{}括起來,以鍵值對形式存儲的容器型數據類型。對象

    • dic = {'q':1,'w':2,"e":3,'r':4}
  • 鍵必須是不可變的數據類型:int、str (bool,tuple幾乎不用)three

  • 值能夠是任意數據類型,對象。get

  • 字典3.5x版本之前(包括3.5)是無序的。it

  • 字典3.6x會按照初次創建字典的順序排列,學術上不認爲是有序的。class

  • 字典3.7x之後都是有序的。容器

  • 字典的查詢速度很是快。遍歷

  • 字典的缺點:以空間換時間。

字典的建立方式

  • # 方式一
    dic = dict((('q',1),('w',2),('e',3)))
    # 方式二
    dic = dict(one=1,two=2,three=3)
    # 方式三
    dic = dict({'one':1,'two':2,'three':3})
    
    #驗證字典的合法性
    dic = {key:value}

字典的增刪改查

  • 字典的增刪改查(鍵值對,鍵要惟一)

  • 增 兩種方式互補

  • dic = {'name':'jarvis','age':18}
    #方式一(直接增長,有這個鍵就覆蓋)
    dic['sex'] = '男'
    #方式二(有這個鍵不變,沒有就增長)
    dic.setdefault('hobby','球類運動')
  • dic = {'name':'jarvis','age':18}
    #方式一(按照鍵刪除鍵值對,有返回值)
    dic.pop('age')     #返回的是值
    ret = dic.pop('hobby','沒有此鍵')  #填入第二個參數時,有無第一個鍵值都不報錯,返回第二個鍵值
    print(ret)
    #方式二(清空)
    dic.clear()
    print(dic)
    #方式三(按照鍵刪除鍵值對,沒有此鍵會報錯)
    del dic['age']
    print(dic)
  • dic = {'name':'jarvis','age':18}
    dic['name'] = 'one'
    print(dic)
  • dic = {'name':'jarvis','age':18}
    #方式一(沒有此鍵會報錯,不推薦使用)
    print(dic['name'])
    #方式二(沒有此鍵不會報錯,能夠設置返回值)
    ll = dic.get('name','沒有此鍵')
    print(ll)
    #方式三(keys()values()items())
    #能夠轉化成列表
    print(list(dic.keys()))
    #遍歷
    for key in dic.keys():
        print(key)
    #拆包
    for key,value in dic.items():
        print(key,value)

字典的嵌套

  • 練習題

  • dic = {
        'name':'jarvis',
        'age':44,
        'wife':[{'name':'jarviswife','age':38}],
        'children':{'girl_first':'one','girl_second':'two','girl_three':'three'}
    }
    
    #1.獲取jarvis的名字。
    print(dic['name'])
    print(dic.get('name'))
    #2.獲取這個字典:{'name':'jarviswife','age':38}。
    print(dic['wife'])
    print(dic['wife'][0])
    #3.獲取jarvis妻子的名字。
    print(dic['wife'][0]['name'])
    #4.獲取jarvis的第三個孩子名字。
    print(dic['children']['girl_three'])
相關文章
相關標籤/搜索