本節主要內容:
1. 字典的簡單介紹
2. 字典增刪改查和其他操作
3. 字典的巢狀
字典
字典(dict)是python中唯一的乙個對映型別.他是以括起來的鍵值對組成.在dict中key是唯一的. 在儲存的時候, 根據key來計算出乙個記憶體位址. 然後將key-value儲存在這個位址中. 這種演算法被稱為hash演算法, 所以, 切記,在dict中儲存的key-value中的key'必須是可hash的,如果你搞不懂什麼是可雜湊, 暫時可以這樣記,可以改變的都是不可雜湊的,那麼可雜湊就意味著不可變.這個是為了能準確的計算記憶體位址而規定的.
已知的可雜湊(不可變)的資料型別: int, str, tuple, bool
不可雜湊(可變)的資料型別: list, dict, set
dict儲存的資料不是按照我們新增進去的順序儲存的.是按照hash表的順序儲存的. 而hash表不是連續的. 所以不能進行切片工作.
它只能通過key來獲取dict中的資料
二. 字典的增刪改查和其他相關操作
增
字典的增加主要有賦值增加.
dist = {}
dist["第乙個"] = "字典"
如果第二個賦值的話,key仍然是這個值,那麼會做出修改操作.
如果不想實現修改操作的話,那麼需要使用這個方法
dist.setdefault("第二個")
dist ={}dist.setdefault(
"第二個
")
dist.setdefault(
"第二個
","字典
") #
這裡注意,雖然key是相同的的,但value並不會修改.但是要了解,只有這個方法不會修改,如果是賦值,還是會修改
print(dist)
刪除
字典的刪除主要有四種方法 dist.pop(),dist.clear(),dist.popitem(),del dist["key"]
這裡面要注意兩個,
乙個是pop()刪除時,會返回刪除的內容.
另乙個popitem()會刪除乙個隨機k,v ,然後返回乙個元組.
示例:
dic =p = dic.pop("id") # pop()中需要傳入key
print(p)
print(dic)
del dic["age"] #直接del刪除某個索引的內容
print(dic)
dic.clear() #清空字典
print(dic)
dic =
dic.popitem() #隨機刪除一組key和value,返回的是刪除的key和value,並且是元組形式
print(dic)
當dist.popitem()返回元組時,可以看一下解構這個概念.
解構
a,b = (1,2)
print(a) #等於1
print(b) #等於2
同樣的對於列表和字串同樣生效
a,b = [1,2]
print(a) #等於1
print(b) #等於2
這裡有個示例:
k,v = dict.popitem()
print(k,v) #列印出隨機刪除的k,v
改
dic.update(dic2) #也就是把dic2字典的內容更新到dic裡面,如果key值一樣進行修改,沒有就是增加.dic2並不會發生變化
示例:
dic =dic1 =
dic.update(dic1)
print(dic)
查
查的話一般有兩種方法乙個是通過類似索引key來查詢,另一種是通過dic.get("key")來查
兩者的區別就是如果通過索引來查的話,沒有會報錯.通過dic.get("key")來查如果沒有的話會返回none,以及可以設定如果沒有返回預設值
dic.get("key","預設值")
示例如下:
dic =p = dic["
id"] #
正常的話是可以查出值的.
(p)#
w = dic["我"]
#pirnt(w) #這樣會報錯.
#通過這樣查就沒有這個問題的.並返回的是none
w = dic.get("我"
(w)#
也可以在沒找到值的情況下返回預設的值 的
x = dic.get("
我","
hehe")
print(x)
其他相關操作
相關操作包括,dist.keys,dist.values(),dist.items()
dist.keys() 相當於獲取所有的key放在乙個列表中,配合解構在迴圈中呼叫
dist.values() 相當於獲取所有的value放在乙個列表中,配合解構在迴圈中呼叫
dist.items() 相當於獲取所有的key/value,最後獲取到的是列表,每個key和value是乙個元組
示例:
dic =for w in dic.keys(): #迴圈打出所有的key
print(w)
for w in dic.values(): # 迴圈打出所有的value
print(w)
for k,v in dic.items():# 迴圈打出所有的key和value值
print(k,v)
二,迴圈的巢狀
這個巢狀和之前的列表巢狀很相似,只要按照邏輯一層一層下去就好了.
示例:
"""1,將name對應的列表追加乙個元素』wusir』。
2,將name對應的列表中的alex首字母大寫。
3,oldboy對應的字典加乙個鍵值對』老男孩』,』linux』。
4,將oldboy對應的字典中的alex對應的列表中的python2刪除。
"""dic1.get(
"name
wusir")
(dic1)
dic1.get(
"name
")[0] = dic1.get("
name
")[0].capitalize()
(dic1)
dic1.get(
"oldboy
")["
老男孩"] = "
linux
(dic1)
dic1.get(
"oldboy
").get("
alex
").remove("
python2")
print(dic1)
python 資料型別(字典型別)
字典型別 dict 作用是 記錄多個 key value 值,優勢是每乙個值 value 都有其對應關係 對映關係 key,而 key對 value 有描述性的功能 定義 1 基本使用 dict 用途 記錄多個值,每乙個值對應的 key 用來描述 value 的作用 在 內用逗號分隔開多個 key ...
Python資料型別 字典
字典 字典是無序的,它不能通過偏移來訪問,只能通過鍵來訪問。字典 key 類似我們現實的鑰匙,而value則是鎖。乙個鑰匙開乙個鎖 特點 內部沒有順序,通過鍵來讀取內容,可巢狀,方便我們組織多種資料結構,並且可以原地修改裡面的內容,屬於可變型別。組成字典的鍵必須是不可變的資料型別,比如,數字,字串,...
python資料型別 字典
python資料型別 字典 字典是python中惟一的對映型別 雜湊表 字典物件時可變的,但是字典的鍵必須使用不可變物件,並且乙個字典中可以使用不同型別的鍵值 keys 或者values 返回鍵列表或者列表 items 返回包含鍵值對的元組 建立字典 dic 取值 dic name dic age ...