python學習內容 05

2022-03-20 00:07:57 字數 2541 閱讀 6124

本節主要內容:

1. 字典的簡單介紹 2. 字典增刪改查和其他操作 3. 字典的巢狀

一. 字典的簡單介紹    字典(dict)是python中唯一的乙個對映型別.他是以括起來的鍵值對組成. 在dict中key是唯一的. 在儲存的時候, 根據key來計 算出乙個記憶體位址. 然後將key-value儲存在這個位址中. 這種演算法被稱為hash演算法, 所以, 切記, 在dict中儲存的key-value中的 key'必須是可hash的, 如果你搞不懂什麼是可雜湊, 暫時可以這樣記, 可以改變的都是不可雜湊的, 那麼可雜湊就意味著不可變. 這個是為了能準確的計算記憶體位址而規定的.

已知的可雜湊(不可變)的資料型別: int, str, tuple, bool 不可雜湊(可變)的資料型別: list, dict, set

語法 :   

注意: key必須是不可變(可雜湊)的. value沒有要求.可以儲存任意型別的資料

# 合法 dic = print(dic[123]) print(dic[true]) print(dic['id']) print(dic['stu']) print(dic[(1, 2, 3)]) # 不合法 # dic =    # list是可變的. 不能作為key # dic = : "哈哈哈"}     # dict是可變的. 不能作為key dic = : '呵呵呵'}    # set是可變的, 不能作為key

dict儲存的資料不是按照我們新增進去的順序儲存的. 是按照hash表的順序儲存的. 而hash表不是連續的. 所以不能進行切片工作. 它只能通過key來獲取dict中的資料

二. 字典的增刪改查和其他相關操作   

1. 增加

dic = {} dic['name'] = '周潤發'     # 如果dict中沒有出現這個key, 就會新增乙個key-value的組合進dict dic['age'] = 18 print(dic)

# 如果dict中沒有出現過這個key-value. 可以通過setdefault設定預設值 dic.setdefault('李嘉誠')   # 也可以往裡面設定值. dic.setdefault("李嘉誠", "房地產")    # 如果dict中已經存在了. 那麼setdefault將不會起作用

print(dic)

2. 刪除

ret = dic.pop("jay") print(ret)

del dic["jay"] print(dic)

# 隨機刪除. ret = dic.popitem()

# 清空字典中的所有內容 dic.clear()

3. 修改

dic = dic1 = dic.update(dic1)    # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存在key, 則新增. print(dic) print(dic1)

4. 查詢

查詢一般用key來查詢具體的資料.

print(dic['name']) # print(dic['sylar'])     # 報錯 print(dic.get("ok")) print(dic.get("sylar"))      # none print(dic.get("sylar", "牛b"))   # 牛b

5. 其他相關操作

dic =

print(dic.keys())   # dict_keys(['id', 'name', 'age', 'ok']) 不用管它是什麼.當成list來用就行 for key in dic.keys():    print(key)

print(dic.values())     # dict_values([123, 'sylar', 18, '科比']) 一樣. 也當list來用 for value in dic.values():    print(value)

print(dic.items())  # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科比')]) 這個東西也是list. 只不過list中裝的是tuple for key, value in dic.items():  # ?? 這個是解構    print(key, value)

# 解構 a, b = 1, 2 print(a, b)

(c, d) = 3, 4 print(c, d)

e, f = [1, 2, 3]    # 解構的時候注意數量必須匹配 print(e, f)

三. 字典的巢狀 # 字典的巢狀 dic1 = ,    "children": ['第乙個毛孩子', '第二個毛孩子'],    "desc": '峰哥不會告我吧. 沒關係. 我想上頭條的' }

print(dic1.get("wife").get("name")) print(dic1.get("children")) print(dic1.get("children")[1])

練習: dic1 =     } 1,將name對應的列表追加乙個元素』wusir』。 2,將name對應的列表中的alex首字母大寫。 3,oldboy對應的字典加乙個鍵值對』老男孩』,』linux』。 4,將oldboy對應的字典中的alex對應的列表中的python2刪除

作業:

Python學習筆記 05

資料描述 gender 1代表男人,2代表女人 20 25歲的男人喜歡hiphop 20 25歲的女人喜歡dance 同理 匯入資料 import pandas as pd 決策樹 from sklearn.tree import decisiontreeclassifier music data ...

python學習內容

2021 02 22 2021 02 26 主要複習 綜合專案 學生要求 1 最低要求 python基礎 中級 高階 必須學會 至少掌握一門語言 每天上午考試,同一套試卷80分合格,達不到80分,第二天繼續考 同乙份試卷 同乙個題目 同乙個答案 重點 訓練思維 2 最高要求 1 2 4 5搞透,3基...

05 檢視檔案內容

2.2 more命令 2.3 less命令 3 檢視部分檔案 linux中有幾個命令可以檢視檔案的內容,而不需要呼叫其他文字編輯器 在顯示檔案內容之前,應該先了解一下檔案的型別。如果開啟了乙個二進位制檔案,你會在螢幕上看到各種亂碼,甚至會把你的終端 器掛起。file命令是乙個隨手可得的便捷工具。它能...