13161216443

您所在位置: 首頁> 學習課程> Python基礎 :關于字典的知識都在這了!

Python基礎 :關于字典的知識都在這了!

發布百知教育 來源:學習課程 2019-12-05

內容概覽:

1.  字典的基本概念

2. 字典的增

3. 字典的刪

4. 字典的改

5. 字典的查

6. 字典的其他操作

7. 字典的五種創建方式



字典的基本概念



1. 前面提到了列表,列表的缺點體現在:


列表如果存儲大量的數據,查找速度相對會很慢
② 列表存儲的數據一般沒有什么關聯性,比如 ["Jane", 160, "女"],單看這個列表你不知道它們之間的聯系


2. 字典是除列表之外最靈活的內置數據結構類型,相比列表的優點有:


字典的查詢速度非???,因為它是 Python 中唯一的映射類型,采用鍵值對的形式存儲數據
② 字典在 Python3.5 及之前的版本中是無序的,但是之后的版本開始優化機制,字典會按照創建之初的順序排列
③ 字典與列表的區別:字典當中的元素是通過鍵來存取,而不是通過偏移來存取


3. 可哈希


① Python 對 key 進行哈希函數運算,根據計算的結果得到 value 的存儲地址,所以字典是無序存儲的,且 key 必須是可哈希的
② 可哈希表示 key 必須是不可變類型,比如 int、string、tuple 等,而且這個鍵是唯一的,后面再有相同的鍵就會替換前面的對應的 value



new_dic = {"name": "aaa", "name": "bbb"}

print(new_dic)    # {'name': 'bbb'}


02 

字典的增



1. 有則覆蓋,無則添加



ic = {"name": "Jane", "age": 18, "sex": "female"}
dic["name"] = "John"print(dic)      # {'name': 'John', 'age': 18, 'sex': 'female'}
dic["hobby"] = "watch TV"print(dic)      # {'name': 'John', 'age': 18, 'sex': 'female', 'hobby': 'watch TV'}


2. setdefault(參數1, 參數2):有則不變,無則添加



dic = {"name": "Jane", "age": 18, "sex": "female"}
dic.setdefault("name", "John")print(dic)      # {'name': 'Jane', 'age': 18, 'sex': 'female'}
dic.setdefault("k", "v")print(dic)      # {'name': 'Jane', 'age': 18, 'sex': 'female', 'k': 'v'}


03 

字典的刪



1. pop():和列表一樣,也有返回值



dic = {"name": "Jane", "age": 18, "sex": "female"}# 注意:pop() 里面必須要有參數,且參數是字典的鍵,否則報錯dic_pop = dic.pop("age")
print(dic_pop)      # 18print(dic)          # {'name': 'Jane', 'sex': 'female'}

# 另外,最好設置一個返回值,避免程序報錯dic = {"name": "Jane", "age": 18, "sex": "female"}dic_pop = dic.pop("a", "找不到該鍵")
print(dic_pop)      # 找不到該鍵print(dic)          # {'name': 'Jane', 'age': 18, 'sex': 'female'}


2. del:沒有返回值



dic = {"name": "Jane", "age": 18, "sex": "female"}
del dic["age"]print(dic)    # {'name': 'Jane', 'sex': 'female'}
# 使用 del 時,必須是該字典存在的鍵,否則會報錯del dic["a"]print(dic)    # 報錯


3. popitem():Python3.5及之前的版本字典是無序的,所以使用這個方法是隨機刪除一個鍵值對;之后的版本因為有序,就只刪除最后一個鍵值對,和 pop() 功能一樣



dic = {"name": "Jane", "age": 18, "sex": "female"}
dic_pop = dic.popitem()print(dic_pop)      # ('sex', 'female')print(dic)          # {'name': 'Jane', 'age': 18}
dic_pop = dic.popitem()print(dic_pop)      # ('age', 18)print(dic)          # {'name': 'Jane'}
# 注意 dic.pop(key) 與 dic.popitem() 的區別# 前者刪除元素,括號里要加字典的鍵;后者是刪除最后一對鍵值對


4. clear():清空字典


dic = {"name": "Jane", "age": 18, "sex": "female"}

dic.clear()
print(dic)    # {}



04 

字典的改


1. 直接賦值法



dic = {"name""Jane""age"18"sex""female"}dic["name"] = "Alex"
print(dic)    # {'name': 'Alex', 'age': 18, 'sex': 'female'}


2. update(dic):將某個字典的所有鍵值對有則覆蓋,無則添加到另一個字典中可



dic = {"name": "Jane", "age": 18, "sex": "female"}new_dic = {"hobby": "nothing", "age": 20}new_dic.update(dic)
print(new_dic)      # {'hobby': 'nothing', 'age': 18, 'name': 'Jane', 'sex': 'female'}
# update() 的另一種用法,注意 key 不能加引號,也不能是數字,因為它是一個變量!dic.update(weight=120, high=170)print(dic)          # {'name': 'Jane', 'age': 18, 'sex': 'female', 'weight': 120, 'high': 170}


05 

字典的查


1. 直接根據字典的鍵取值


dic = {"name": "Jane", "age": 18, "sex": "female"}
ret1 = dic["name"]print(ret)      # Jane
# 如果沒有該鍵就報錯ret2 = dic["hobby"]  print(ret2)     # 報錯


2. get(key):獲取不到就返回 None,或設置默認值

    dic = {"name": "Jane", "age": 18, "sex": "female"}
    ret1 = dic.get("name")print(ret1)    # Jane
    ret2 = dic.get("hobby")print(ret2)    # None
    ret3 = dic.get("aaa", "字典中沒有該鍵")print(ret3)    # 字典中沒有該鍵


    06 

    字典的其他操作


    1. 首先了解字典的幾個方法


      dic = {"name": "Jane", "age": 18, "sex": "female"}
      items = dic.items()print(items)      # dict_items([('name', 'Jane'), ('age', 18), ('sex', 'female')])
      values = dic.values()print(values)     # dict_values(['Jane', 18, 'female'])
      keys = dic.keys()print(keys)       # dict_keys(['name', 'age', 'sex'])


      2. 循環字典的每種元素


      dic = {"name": "Jane", "age": 18, "sex": "female"}
      # 循環字典的每一個鍵for key in dic.keys():    print(key) # 運行結果:nameagesex
      # 循環字典的每一個值for value in dic.values():    print(value) # 運行結果:Jane18female

      # 循環字典的每一個鍵值對for key,value in dic.items():    print(key, value) # 運行結果:name Janeage 18sex female


      07 

      字典的五種創建方式


      ######## 第一種:dict({鍵值對}) ########dic = dict(name="Jane", age="12")# 注意:這種創建方式,值不能是數字,即不能是 age=12print(dic)    # {'name': 'Jane', 'age': '12'}

      ######## 第二種:dic = {鍵值對} ########dic = {"name": "Jane", "age": 12}print(dic)    # {'name': 'Jane', 'age': 12}

      ######## 第三種:fromkeys({鍵值對}) ########dic.fromkeys("name", "Jane")# 注意:這里的第一個參數是字典的鍵,可迭代,第二個參數是值,默認是 Noneprint(dic)    # {'name': 'Jane', 'age': 12}

      ######## 第四種 ########dic = dict([("a", 1), ("b", 2), ("c", 3)])print(dic)    # {'a': 1, 'b': 2, 'c': 3}

      ######## 第五種:zip() ########l1 = [1, 2, 3]l2 = ["a", "b", "c"]dic = dict(zip(l1, l2))print(dic)    # {1: 'a', 2: 'b', 3: 'c'}


      python培訓班:http://www.akpsimsu.com/python2019










      上一篇:web前端培訓 | 用 globalThis 訪問全局對象

      下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

      相關推薦

      www.akpsimsu.com

      有位老師想和您聊一聊

      關閉

      立即申請